¿me puede ayudar a entender por qué este código causa una entrada duplicada (IntegrityError)?Django - get_or_create no funciona
Estoy en Django 1.2.
(row, is_new) = MyModel.objects.get_or_create(field1=1)
row.other_field = 2
row.save()
Tengo una restricción única en el campo1. Si hay una fila donde campo1 = 1, todo funciona bien, Django hace un "obtener".
Si no hay una fila donde campo1 = 1, parece que Django está creando esa fila que está bien. Pero ¿por qué no me deja guardarlo?
Actualización:
Si ayuda, aquí es MyModel:
class MyModel(models.Model):
id = models.BigIntegerField(primary_key=True)
field1 = models.BigIntegerField(unique=True)
other_field = models.CharField(max_length=765)
class Meta:
db_table = u'project_crosses_suppl_FO'
campo1 es una clave externa a otra tabla. Pero no hice una maqueta en Django para esa mesa, así que no le digo a Django que es una clave foránea.
¿El MyModel tiene campo extranjero? ¿Puedes publicar el código de MyModel? –
[Esta pregunta similar] (http://stackoverflow.com/questions/6974463/django-get-or-create-raises-duplicate-entry-with-together-unique) podría ayudarlo. – agf
@agf. No entiendo cuál era la resolución en esa pregunta o cómo se justifica el problema. Suena como un error para mí. Creo que me rendiré en get_or_create y lo solucionaré :-( – Greg