Выберите выбор из models.py в html-форме DJANGO
У меня есть модель в models.py с полем living_countries
:
LIVING_COUNTRIES = [
('AFGANISTAN', 'Afganistan'),
('ALBANIA', 'Albania'),
('ALGERIA', 'Algeria'),
('ANGORRA', 'Andorra')]
country_living = models.CharField(max_length=50, choices=LIVING_COUNTRIES, default='AFGANISTAN', blank=True)
Я хочу, чтобы пользователь, перед которым находится html-форма, мог выбрать один из этих вариантов.
Я пробовал:
на вид:
living_countries = models.Employee.objects.all()
в html:
<select name="category" id="id_category">
{% for category in living_countries %}
<option value="{{ category }}">{{ category }}</option>
{% endfor %}
</select>
Он просто создает странные формы, такие как: . Я могу нажать на нее, но это ничего не делает.
Я хочу, чтобы пользователь видел выпадающее меню или что-то вроде этого. Спасибо:)
Вы захотите передать переменную living_countries в шаблон, используя контекст. Предположим, что ваше представление в файле views.py имеет следующий вид:
template = loader.get_template('app/page.html')
# You'll want to create a context variable that is a dictionary
context = {}
# Then, instantiate your variable you want to pass to the view
living_countries = models.Employee.objects.all()
# Now pass that variable to context
context['living_countries'] = living_countries
# Now render your view
return HttpResponse(template.render(context, request))
Теперь вы можете получить доступ к переменной в вашем шаблоне так, как это было в вашем вопросе:
<select name="category" id="id_category">
{% for category in living_countries %}
<option value="{{ category }}">{{ category }}</option>
{% endfor %}
</select>