我正在开发一个应用程序,出于这个问题,我有两个模型,我们称它们为A和B。我想拥有另一个模型,在该模型中我同时链接A和B只是为了让我轻松找到实例的B与A相关。所以我想到了:
class ABLink(models.Model):
a = models.OneToOneField(A, null=True)
b = models.OneToOneField(B, null=True)
我对模型A使用Django的post_save信号进行链接:
mashup, cr = ABLink.objects.get_or_create(a=instance)
if cr:
mashup.b = B()
else:
if mashup.b is None:
mashup.b = B()
.... (assign values to mashup.b attributes)
mashup.b.save()
mashup.save()
问题是mashup.b从未保存在数据库中。在签入phpMyAdmin时,b设置为NULL。知道我做错了什么
首先创建B
实例,为其分配属性,在其上调用save(现在具有ID),然后将其分配给mashup.b
:
if cr:
b = B()
else:
if mashup.b is None:
b = B()
#.... (assign values to b attributes)
b.save()
mashup.b = b
mashup.save()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句