【发布时间】:2017-06-15 14:50:30
【问题描述】:
我有以下两个 Django 模型:
class A:
uuid = CharField(primary_key=True)
code = CharField(unique=True)
class B:
uuid = CharField(primary_key=True)
a = ForeignKey(A, related_name='bs')
def save(**kwargs):
self.a.save(**kwargs)
super(B, self).save(**kwargs)
如果我想在测试用例中使用它们并编写这个函数:
def setUp():
a = A.objects.create(uuid='a')
b = B.objects.create(uuid='b', a=a)
我收到以下错误:
UNIQUE constraint failed: app_name_a.code
看起来在 B 的 save 方法中,它尝试创建另一个具有相同值的 A,而不是更新现有实例。为什么会这样?我正在使用 Python 3.5 和 Django 1.8.14。
顺便说一句:我想保存父级的原因是我在 save 方法中有更新 updated_at 时间戳的功能。
【问题讨论】: