我有InstituteDetailsModel,其中只有一个条目。我有另一个表学生详细信息,它在其一列中使用InstituteDetailsModel作为FK,如下所示:
institute = models.ForeignKey('institute.InstituteDetailsModel', to_field="sys_id", on_delete = models.PROTECT, null=False, blank=True)
现在,在存储学生详细信息时,我尝试使用以下两种方法从学院表中获取唯一的条目。第二种方法抛出错误Select a valid choice. That choice is not one of the available choices.
而第一种方法工作正常。
我想知道两者之间有什么区别
InstituteDetailsModel.objects.filter(sys_id=1)
&
InstituteDetailsModel.objects.first()
以及为什么其中一个有效而另一个不起作用。
InstituteDetailsModel.objects.filter(sys_id=1)
当你执行上述操作时,这将返回 InstituteDetailsModel 的查询集
InstituteDetailsModel.objects.first()
这将返回 InstituteDetailsModel 的实例
所以你必须从查询集中的索引中获取数据,比如
ins = InstituteDetailsModel.objects.filter(sys_id=1)
ins = ins[0]
现在ins
和InstituteDetailsModel.objects.first()
的类型相同
如果InstituteDetailsModel模型没有任何条目,那么下面的代码将返回None。
InstituteDetailsModel.objects.first()
但下面将返回空白查询集
InstituteDetailsModel.objects.filter(sys_id=1)