我有一个带有 ModelChoiceField 的表单,我想从我的数据库中加载一个表。如果我在表单的初始化中使用这个查询集,那么我的视图 form.is_valid 可以正常工作:
self.fields['categoria_formfield'].queryset = sitio_categoria.objects.exclude(categoria='patrimonio').values_list('idCategoria',flat=True)
该代码在 ModelChoiceField 上显示一个 id 列表,但我需要它来显示类别列表。所以我使用:
self.fields['categoria_formfield'].queryset = sitio_categoria.objects.exclude(categoria='patrimonio').values_list('categoria',flat=True)
但是使用此代码 .is_valid 不验证,我收到一个表单错误:“选择一个有效的选择。该选择不是可用的选择之一。” 关于可能是什么问题的一些线索?
模型
class sitio_categoria(models.Model):
idCategoria = models.AutoField(primary_key=True)
categoria = models.CharField(max_length=30, null=False, unique=True)
形式
class anadirComercioPaso1_form(forms.Form):
categoria_formfield = forms.ModelChoiceField(widget=forms.Select(attrs={'size':'13', 'onchange':'this.form.action=this.form.submit()'}), queryset=sitio_categoria.objects.none())
def __init__(self, *args, **kwargs):
super(anadirComercioPaso1_form, self).__init__(*args,**kwargs)
self.fields['categoria_formfield'].queryset = sitio_categoria.objects.exclude(categoria='patrimonio').values_list('categoria',flat=True)