我有2个型号:
class Vendor(models.Model):
admin = models.ForeignKey(User)
...
class User(models.Model):
...
我想在一个交易中创建用户和供应商:
with transaction.atomic():
user = User(name="test")
user.save()
vendor = Vendor(admin=user)
vendor.save()
但我收到错误: ValueError:禁止save()以防止由于未保存的相关对象' admin'而导致数据丢失。 如何解决这个错误?如何在1个事务中创建这两个对象?
答案 0 :(得分:0)
我认为我发现了我的问题:模型User的主键未定义为AutoField,因此在保存后,User对象不是一个完整的对象:缺少主键。我认为这会导致错误。将主键设置为AutoField后,错误已解决。