0
我有以下形式:Django表单失败
# coding=utf-8
class SelectTwoTeams(BootstrapForm):
def __init__(self, *args, **kwargs):
user = kwargs.pop('user', None)
self.currentSelectedTeam1 = kwargs.pop('currentSelectedTeam1', None)
self.currentSelectedTeam2 = kwargs.pop('currentSelectedTeam2', None)
self.currentfixturematchday = kwargs.pop('currentfixturematchday', None)
self.currentCampaignNo = kwargs.pop('currentCampaignNo', None)
super(SelectTwoTeams, self).__init__(*args, **kwargs)
cantSelectTeams = UserSelection.objects.select_related().filter(~Q(fixtureid__fixturematchday=self.currentfixturematchday),campaignno=self.currentCampaignNo)
if not cantSelectTeams:
queryset = StraightredTeam.objects.filter(currentteam = 1)
else:
queryset = StraightredTeam.objects.filter(currentteam = 1).exclude(teamid__in=cantSelectTeams.values_list('teamselectionid', flat=True))
self.fields['team1'].queryset = queryset
self.fields['team2'].queryset = queryset
self.fields['team1'].initial = self.currentSelectedTeam1
self.fields['team2'].initial = self.currentSelectedTeam2
team1 = forms.ModelChoiceField(queryset=StraightredTeam.objects.none(), empty_label=None,
widget=forms.Select(attrs={"class":"select-format",'onchange': 'this.form.submit();'}))
team2 = forms.ModelChoiceField(queryset=StraightredTeam.objects.none(), empty_label=None,
widget=forms.Select(attrs={"class":"select-format",'onchange': 'this.form.submit();'}))
def clean(self):
cleaned_data = self.cleaned_data # individual field's clean methods have already been called
team1 = cleaned_data.get("team1")
team2 = cleaned_data.get("team2")
if team1 == team2:
raise forms.ValidationError("You picked the same team!")
return cleaned_data
如果我用我的HTML文件以下,并选择同一两队它正确地说:“你选择了同一个团队!”:
<form action="" method="post">
{% csrf_token %}
{{ form }}
</form>
不过,如果我使用以下命令:
<form action="" method="post">
{% csrf_token %}
{{ form.team1 }}{{ form.team2 }}
</form>
我没有得到任何反馈。当我选择相同的两支球队时,什么都不会发生任何想法为什么分离领域停止它的工作?
非常感谢,艾伦。
使完整感,谢谢:) –