python - Django onetoonefield 不保存实例

标签 python django django-models

我正在开发一个应用程序,为了解决这个问题,我有两个模型,我们称它们为 A 和 B。我想要另一个模型,我可以在其中“链接”A 和 B,以便于我找到与 A 相关的 B 的实例。所以我想出了:

class ABLink(models.Model):
    a = models.OneToOneField(A, null=True)
    b = models.OneToOneField(B, null=True)

我使用 Django 的模型 A 的 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实例,为其分配属性,在其上调用保存(现在它有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()

关于python - Django onetoonefield 不保存实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21675461/

相关文章:

python - 使用循环连接 .wav 文件

python - 将函数参数打包到字典中——与 **kwargs 相反

python - 如何使用 kazoo 包在 Python 中添加子节点数据更新监视

python - Django 项目的 block 标记无效 : 'gettweet' , 应为 'endblock'

html - Django 没有加载 CSS?

python - Django 模型每个外键单个实例

python - 避免 Django ModelForm 和 Django Model 之间的重复

Python xgettext 合并gettext 和ngettext 字符串,打破翻译查找

python - 模板 - 菜单

Django、Howto 连接(和范围)facebook 和 django-userena 或类似的