Django 选择一个有效的选项ModelMultipleChiiceField错误
我正在尝试制作一个表单,允许用户通过复选框列表选择雇主,这取决于他们使用ModelMultipleEchoiseField的团队。我可以为每个团队筛选合适的雇主,但当我选择其中任何一个时,我就出现了错误 选择一个有效的选项。3不是可用的选项之一 我不知道怎么了/ 这是我的表单类:Django 选择一个有效的选项ModelMultipleChiiceField错误,django,django-forms,multiple-choice,Django,Django Forms,Multiple Choice,我正在尝试制作一个表单,允许用户通过复选框列表选择雇主,这取决于他们使用ModelMultipleEchoiseField的团队。我可以为每个团队筛选合适的雇主,但当我选择其中任何一个时,我就出现了错误 选择一个有效的选项。3不是可用的选项之一 我不知道怎么了/ 这是我的表单类: class TaskDictForm(forms.Form): team_id = 0 order = forms.IntegerField(min_value=0) name = forms.CharField(ma
class TaskDictForm(forms.Form):
team_id = 0
order = forms.IntegerField(min_value=0)
name = forms.CharField(max_length=200)
start = forms.DateTimeField()
previous = forms.CharField(max_length=200)
employers = forms.ModelMultipleChoiceField(queryset=None, widget=forms.CheckboxSelectMultiple)
def __init__(self, *args, **kwargs):
initial = kwargs.get('initial', {})
if hasattr(self, 'initial_values') and not kwargs.get('data'):
for field_name, value in self.initial_values.items():
if not getattr(kwargs.get('instance', None), field_name, None):
initial[field_name] = value
kwargs.update({'initial': initial})
if hasattr(self, 'required_fields'):
for field_name in self.required_fields:
self.fields[field_name].required = True
tmp = kwargs.pop('pk', None)
self.team_id = tmp
super(TaskDictForm, self).__init__(*args, **kwargs)
self.fields['employers'].queryset = Employer.objects.filter(team=self.team_id)
雇主和团队模式:
class Team(models.Model):
name = models.CharField(default='Team', max_length=100, unique=True)
def __str__(self):
return self.name
class Employer(models.Model):
user = models.OneToOneField(User, on_delete=models.SET_NULL, null=True)
team = models.ForeignKey(Team, on_delete=models.SET_NULL, null=True)
team_leader = models.BooleanField(default=False)
project_menager = models.BooleanField(default=False)
# project_id = models.ForeignKey(Project, on_delete=models.SET_NULL, null=True)
hourly_rate = models.IntegerField(default=0)
working_time = models.FloatField(default=0.0)
def __str__(self):
return (self.user.first_name + ' ' + self.user.last_name)
同样的问题是,当我尝试使用MultipleEchoISeField时,是否有理由使用
forms.Form
而不是ModelForm
ModelForm
可以为您实现这一点,因此答案有点取决于您是否可以切换到ModelForm
。还要添加相关模型的代码,特别是带有employers字段的模型。在这种情况下,我不使用model form,因为除了Employer模型之外,我不必使用此视图中的任何模型