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