Mam formularz z ModelChoiceField, i chcę załadować na nim tabelę z mojego DB. Jeśli mogę użyć tego queryset na init, moja forma, a następnie form.is_valid moim zdaniem za działa dobrze:Django - Jak działa zestaw zapytań ModelChoiceField?
self.fields['categoria_formfield'].queryset = sitio_categoria.objects.exclude(categoria='patrimonio').values_list('idCategoria',flat=True)
Ten kod pokazać listy identyfikator użytkownika na ModelChoiceField, ale co potrzebne jest, aby pokazać kategorie lista. Więc używam:
self.fields['categoria_formfield'].queryset = sitio_categoria.objects.exclude(categoria='patrimonio').values_list('categoria',flat=True)
Ale za pomocą tego kodu .is_valid nie walidacji i recive błąd forma: „Wybierz poprawny wybór Wybór ten nie jest dostępny jeden z wyborów.”. Jakiś trop o tym, co może być problemem?
MODEL
class sitio_categoria(models.Model):
idCategoria = models.AutoField(primary_key=True)
categoria = models.CharField(max_length=30, null=False, unique=True)
FORMULARZ
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)