Как получить информацию из поля опции в django?

У меня есть приложение django с аутентификацией и выпадающим меню внутри. Раньше я делал это так:

<select name="country" id="id_category" data="{{ data.country }}">
        {% for each in living_countries_list %}
             <option name="country" value="{{ each.0 }}" class="living_countries">{{ each.1 }}</option>
        % endfor %}
</select>

Теперь я изменил его на:

                <input list="brow" placeholder="Search for your country..." class="input_country">
                <datalist id="brow">
                    {% for each in living_countries_list %}
                        <option name="country" value="{{ each.0 }}" class="living_countries">{{ each.1 }}</option>
                    {% endfor %}
                </datalist>
                <p class="country_text">Please select your living country</p>

В моем файле views.py я передал контекст следующим образом:

country = request.POST.get('country')

professors = models.Professor.objects.all()
living_countries_list = LIVING_COUNTRIES
print(country)

В models.py у меня есть такие опции, как:

LIVING_COUNTRIES = [
    ('AFGANISTAN', 'Afganistan'),
    ('ALBANIA', 'Albania'),
    ('ALGERIA', 'Algeria'),
    ('ANGORRA', 'Andorra'),
    ('ANGOLA', 'Angola')]
class Professor(models.Model):
    country_living = models.CharField(max_length=50, choices=LIVING_COUNTRIES, default=FRESHMAN, blank=True, null=True)

Итак, у меня есть несколько вариантов, которые отображаются в любом случае, но в измененном я могу вводить ввод, и это то, что я хочу иметь возможность делать.

Если вы хотите, чтобы я опубликовал что-то еще, дайте мне знать в комментариях

В django не нужно создавать формы традиционными методами. Создайте первый FormSet в views.py:

from django.shortcuts import render
from . import models
from django.forms import modelformset_factory

def formpageview(request):
    ProfessorFormSet = modelformset_factory(models.Professor, fields=('country_living',))
    if request.method == 'POST':
        formset = ProfessorFormSet(request.POST, request.FILES)
        if formset.is_valid():
            formset.save()
            # do something.
    else:
        formset = ProfessorFormSet()
    return render(request, 'form.html', {'formset': formset})

и затем используйте этот набор форм в файле form.html:

<form method="post">
    {% csrf_token %}
    {{ formset.management_form }}
    {% for form in formset %}
        {{ form }}
    {% endfor %}
    <button type='submit'>Submit</button>
</form>

Вам следует просмотреть документацию

Вернуться на верх