Значение параметра выбора в Django's Views.py - PullRequest
0 голосов
/ 08 мая 2019

Я использую тег select в шаблоне вместе со ссылкой, имеющей тип submit внутри тега формы. Когда я выбираю опцию из выпадающего меню и нажимаю на кнопку, она переходит на следующую страницу, но я не могу получить значение выбранных опций. Показанный объект AttributeError 'Manager' не имеет атрибута 'month'. Вот мой код:

<form method="POST" action="{% url 'results' %}">
        {% csrf_token %}
<select name="mahina" id="month">
            <option value="all">All</option>
            <option value="jan">January</option>
            <option value="feb">February</option>
</select>
<a href="{% url 'results' %}" type="submit">Search</a>
</form>

Вот мои views.py

from django.shortcuts import render
from .models import Results


def allresults(request):
    results = Results.objects
    if request.method == "GET":
        month = results.month
        year = results.year
        return render(request, 'results/allresults.html', {'results': results}

1 Ответ

1 голос
/ 08 мая 2019

Таким образом, чтобы получить значения формы в представлениях, вы должны сделать как form_val = request.GET.get('field_name', <default_value>), чтобы добавить несколько строк в коде

def allresults(request):
    # this will get the value of the selected item, print this to know more
    mahina = request.GET.get('mahina', None)

    #Just writing the below query field month randomly, since the models isn't posted
    results = Results.objects.filter(month=mahina)

    # We don't need to give GET since by default it is a get request

    # Since there are multiple objects returned, you must iterate over them to access the fields
    for r in results:
        month = r.month
        year = r.year

    return render(request, 'results/allresults.html', {'results': results}
...