Как сделать <select>через Django ModelChoiceField - PullRequest
0 голосов
/ 01 ноября 2019

У меня есть select, созданный в HTML-коде. Я хочу переделать это через формы Django. Как я могу это сделать? Мой подтвержденный код в forms.py не работает. Форма всегда недействительна.

views.py

contractors = cache.get('contractors')
if not contractors:
    contractors = Contractors.objects.values_list('name', flat='True')
    cache.set('contractors', contractors, 3600)

Html-код

<select name="contractorName" class="form-control" id="id_contractorName">
option value="" selected="">---</option>
{% for contractor in contractors %}
<option value="{{ contractor }}">{{ contractor }}</option>
{% endfor %}
</select>

models.py

class Contractors(models.Model):
    id = models.IntegerField(blank=True, null=False, primary_key=True)
    name = models.CharField(max_length=255, blank=True, null=True)


    class Meta:
        managed = False
        db_table = '"processing"."contractor"'

forms.py

class SearchForm(forms.Form):
    date1st = forms.DateField(required=False)
    date2st = forms.DateField(required=False)
    numberPayment = forms.CharField(required=False)
    numberPhone = PhoneNumberField(region='RU', required=False)
    #contractorName = forms.ModelChoiceField(queryset=Contractors.objects.values_list('name', flat='True'), required=False)
    status = forms.ChoiceField(choices=(('', '----'),("success", "success"), ("decline", "decline"), ("refund", "refund")), required=False)
...