Ho un modulo con ModelChoiceField e voglio caricare su di esso una tabella dal mio DB. Se io uso questo set di query su init di mia forma, quindi form.is_valid del mio punto di vista funziona bene:Django - Come funziona ModelChoiceField di queryset?
self.fields['categoria_formfield'].queryset = sitio_categoria.objects.exclude(categoria='patrimonio').values_list('idCategoria',flat=True)
Quel codice mostrano la lista di un id sulla ModelChoiceField, ma quello che ho bisogno è di mostrare le categorie elenco. Quindi io uso:
self.fields['categoria_formfield'].queryset = sitio_categoria.objects.exclude(categoria='patrimonio').values_list('categoria',flat=True)
Ma usando questo codice .is_valid non convalidare e ho recive un errore di forma: "Selezionare una scelta valida Tale scelta non è una delle scelte avaliable.". Qualche indizio su quale potrebbe essere il problema?
MODELLO
class sitio_categoria(models.Model):
idCategoria = models.AutoField(primary_key=True)
categoria = models.CharField(max_length=30, null=False, unique=True)
FORM
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)