У меня есть форма с ModelChoiceField, и я хочу загрузить на нее таблицу из моей БД. Если я использую эту QuerySet на инициализации моей формы, а затем form.is_valid мой взгляд работает нормально:Django - Как работает набор запросов ModelChoiceField?
self.fields['categoria_formfield'].queryset = sitio_categoria.objects.exclude(categoria='patrimonio').values_list('idCategoria',flat=True)
Этот код показывает список идентификатор находится на ModelChoiceField, но то, что мне нужно это, чтобы показать категории список. Поэтому я использую:
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)