Django 外键概念

Django 外键概念,django,django-models,django-views,Django,Django Models,Django Views,我有两个模型,比如说A和B A与auth_user是一对一的,B通过外键与A相关 现在,当我尝试在模型B中输入数据时,它会给我一个错误A_id'不能为null。那么,有谁能告诉我如何将数据输入外键,或者默认情况下它可以获得模型A的id?如果是,那么如何 注意: 我对每个模型使用单独的表单,这意味着我在模型A中提交数据,成功后,它会将我提交到配置文件页面,然后在那里我单击链接以填写第二个模型的详细信息,因此第二个表单开始发挥作用。 因此,这里我不知道外键如何获取模型A的id。如果要保存模型B FK

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

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

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

注意:

我对每个模型使用单独的表单,这意味着我在模型A中提交数据,成功后,它会将我提交到配置文件页面,然后在那里我单击链接以填写第二个模型的详细信息,因此第二个表单开始发挥作用。
因此,这里我不知道外键如何获取模型A的id。

如果要保存模型B FK字段而不引用模型A,即FK为空,则应允许该字段为空(null=True,blank=True)。
否则,您必须向B对象提供对象,然后保存它。

创建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()
设置将自动设置要保存在数据库中的\u id


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

如果您无法在模型A上没有相应记录的情况下将数据添加到模型B中,但您愿意,则您的设计不好。否则请按照llian的回答操作…我在模型A中有数据,如果我完成了模型的详细信息,那么只有我才能看到概要文件,从而可以看到linkIf,这样您才能从模型A中查询最后插入的行id。您使用的语言是什么?我不知道python或Django,但是试着问一个问题。我可以这样得到A的对象X=A.objects.all(),那么当我向B提交数据时,我应该写些什么,这样B的外键就可以得到A的primery键简言之:obj_A=A.objects.get()#注意get可以抛出异常\n B.fk_to_A_field=obj_A\n B.save()