ModelChoiceFieldを含むフォームがあり、DBからテーブルをロードしたいと思います。フォームのinitでこのクエリセットを使用すると、ビューの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を使用しても検証されず、フォームエラーが表示されます:「有効な選択肢を選択してください。その選択肢は利用可能な選択肢の1つではありません。」何が問題になるのかについての手がかりはありますか?
モデル
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)