latest - tutorial django
Django: ¿Crear aparatos sin especificar una clave principal? (5)
Debería echar un vistazo a Natural Keys si desea agregar una relación sin usar pk''s
https://docs.djangoproject.com/en/dev/ref/django-admin/#dumpdata-app-label-app-label-app-label-model
Una de las cosas que me molesta sobre los accesorios de Django es que debes especificar la clave principal de cada modelo. ¿Hay alguna forma de crear accesorios sin tener que especificar una clave principal para cada fila?
Si revisa el comando manage.py dumpdata, verá algunas opciones llamadas --natural-foreign, --natural-primary. Si observa la salida, puede ver que los objetos se vuelcan sin utilizar claves principales o claves externas.
Tuve que lidiar con el esquema de base de datos existente sin posibilidad de cambiarlo, así que necesito una tabla con clave principal compleja o sin ella, pero no con la serial. Lo que hice:
He especificado un primary_key = True para el campo, que no debería ser único en absoluto y escribí el método sobrecargado:
class ContraIndicationsMedicines(models.Model):
contra_indication = models.ForeignKey(ContraIndication, primary_key=True)
medicine = models.ForeignKey(Medicine)
def validate_unique(self, exclude=None):
pass
De hecho, funcionó para mis necesidades, pero hay más llamadas de validación dentro de django.contib.admin. * Y no se garantiza que funcionen todos los inlines, etc. Esa fue la única solución que pude implementar ... ((
Use "pk: null" en lugar de "pk: 1" (o lo que sea), lo que hará que PK se establezca en Ninguno, y cuando se guarde el objeto, se asignará una clave principal.
Esto funciona para YAML al menos, supongo que lo estás usando si lo estás creando a mano.
Un amigo mío sugirió el módulo de fixture
: http://farmdev.com/projects/fixture/