1

我有两个模型,比如说 A 和 B。

A 与 auth_user 是一对一的,B 通过外键与 A 相关。

现在,当我尝试在模型 B 中输入数据时,它给了我一个错误A_id' cannot be null。那么谁能告诉我如何将数据提供给外键或者默认情况下它可以获得模型A的ID,如果是,那么如何???

笔记:

我为每个模型使用了单独的表单,这意味着我在模型 A 中提交数据,成功后它会将我引至个人资料页面,然后我单击链接以填写第二个模型的详细信息,因此第二个表单开始发挥作用。所以在这里我不知道那个外键是怎么得到模型A的id的。

4

2 回答 2

1

如果您想在不参考模型 A 的情况下保存模型 B 的 FK 字段,即如果 FK 为 Null,则应允许模型 B FK 字段为空(null=True,blank=True)。否则,您将不得不用 A 对象提供 B 对象,然后保存它。

于 2012-09-19T10:36:21.963 回答
1

创建 B 对象时,您需要提供对 A 对象的引用。

你说你正在使用一个表单来创建 B 对象,所以你可能需要一些类似的东西......

b_instance = new_b_form.save(commit=False)
b_instance.a = A.objects.get(something="whatever")  # You'll know how to find the A object you want related.
b_instance.save()

设置 a 会自动设置 a_id 保存在数据库中。

或者,您可以更改表单,以便用户可以选择 A 对象。

于 2012-09-19T11:18:04.853 回答