这是我的代码:
class PreEncounterAttendanceForm(ModelForm):
class Meta:
model = PreEncounterAttendance
fields = '__all__'
def __init__(self, *args, **kwargs):
super(PreEncounterAttendanceForm, self).__init__(*args, **kwargs)
this_class = self.instance.pre_encounter_class.id
visitors = Visitor.objects.exclude(id__in=PreEncounterAttendance.objects.all().exclude(pre_encounter_class__id=this_class).values_list('student', flat=True))
self.fields['student'].queryset = visitors
当我手动输入数字时它可以工作,但是当我使用self.instance.pre_encounter_class.id
时它失败了,因为它是一个NoneType
。在
有别的办法吗?在
编辑: 发现了问题。我必须先检查实例id是否存在:
^{pr2}$
一种可能的方法是从视图中传递kwargs中的
class id
,然后在调用super()
之前弹出它:相关问题 更多 >
编程相关推荐