Python Django表单-传递值
我有以下表格,似乎不能使用“self.currentSelectedTeam1”作为team1的初始值,如底部所示。当我尝试此操作时,会出现以下错误:Python Django表单-传递值,python,django,Python,Django,我有以下表格,似乎不能使用“self.currentSelectedTeam1”作为team1的初始值,如底部所示。当我尝试此操作时,会出现以下错误: team1 = forms.ModelChoiceField(queryset=StraightredTeam.objects.none(), empty_label=None,initial=self.curentSelectedTeam1) NameError: name 'self' is not defined 表格: 非常感谢您的帮助
team1 = forms.ModelChoiceField(queryset=StraightredTeam.objects.none(), empty_label=None,initial=self.curentSelectedTeam1)
NameError: name 'self' is not defined
表格:
非常感谢您的帮助,Alan。这不起作用,因为
team1
和team2
字段是在调用\uuu init\uuu
之前创建的,因为它们是实例成员
这意味着self.curentSelectedTeam1
和self.curentSelectedTeam2
还不可用,很可能None
为了在表单上设置初始值,您需要在实例化表单本身时这样做
team1_pk = 0
team2_pk = 1
form = SelectTwoTeams(initial={'curentSelectedTeam1': team1_pk, 'curentSelectedTeam2': team2_pk})
您需要删除当前的
\uuuuu init\uuuu
覆盖或调用super()
允许将初始值传递给表单的默认构造函数。这不起作用,因为字段team1
和team2
是在调用之前创建的,因为它们是实例成员
这意味着self.curentSelectedTeam1
和self.curentSelectedTeam2
还不可用,很可能None
为了在表单上设置初始值,您需要在实例化表单本身时这样做
team1_pk = 0
team2_pk = 1
form = SelectTwoTeams(initial={'curentSelectedTeam1': team1_pk, 'curentSelectedTeam2': team2_pk})
您需要删除当前的\uuu init\uuu
覆盖或调用super()
以允许将初始值传递给表单的默认构造函数。问题在于team1和team2变量中的self
关键字。
问题是它们在类级别上,而self在实例级别上可用(在方法内部,不包括静态方法和类方法)
要使其正常工作,您需要对self.fields['team1']执行相同的操作。queryset
:
self.fields['team1'].initial = self.curentSelectedTeam1
在\uuuu init\uuuu
方法内部。问题在于team1和team2变量中的self
关键字。
问题是它们在类级别上,而self在实例级别上可用(在方法内部,不包括静态方法和类方法)
要使其正常工作,您需要对self.fields['team1']执行相同的操作。queryset
:
self.fields['team1'].initial = self.curentSelectedTeam1
在\uuuuu init\uuuuuu
方法中。很抱歉,我不能同时给出正确答案。两种方法都很有效,我非常感谢你的帮助。非常感谢,艾伦。很抱歉,我不能同时给出两个正确的答案。两种方法都很有效,我非常感谢你的帮助。非常感谢,艾伦。