primary multiple llaves fields compuestas python django postgresql

python - llaves - django model primary key multiple fields



Clave primaria compuesta en django (1)

Tengo una tabla de base de datos heredada que tiene clave principal compuesta. No creo que pueda cambiar la estructura para incluir una clave sustituta, ya que hay algún código escrito que usa esa tabla. Y en django, no puedo usar esa tabla, ya que no tiene una clave principal (no compuesta).

¿Los modelos django admiten claves primarias compuestas? Si no es así, ¿hay alguna solución sin cambiar la estructura de la tabla?

PS Estoy usando postgresql.


Pruebe el siguiente código similar:

class MyTable(models.Model): class Meta: unique_together = ((''key1'', ''key2''),) key1 = models.IntegerField(primary_key=True) key2 = models.IntegerField()

o si quieres solo campos mixtos únicos:

class MyTable(models.Model): class Meta: unique_together = ((''key1'', ''key2''),) key1 = models.IntegerField() key2 = models.IntegerField()

EDITAR: Me gustaría señalar que hay un problema con este enfoque si hay 3 columnas. Las consultas de actualización no funcionan porque intenta actualizar (coloca los campos pk justo después de "CONFIGURAR") los campos que son únicos y obviamente fallan.