Django выпадающий список в template. Как принято правильно изменять объекты?

Доброго времени суток!
Прошу сильно не пинать.
Пытаюсь осилить первый пробный проект на джанго (только знакомлюсь).
Буду благодарен за помощь.

#models.py
grade_list = (
    [1, 'Самый низкий']
    , [2, 'Низкий']
    , [3, 'Средний']
    , [4, 'Выше среднего']
    , [5, 'Высокий']
    , [6, 'Самый высокий']
)

class Request(models.Model):
    title = models.CharField(max_length=150)
    #....


class Grade(models.Model):
    user = models.ForeignKey(User)
    request = models.ForeignKey(Request)
    level = models.IntegerField(choices=grade_list, default=3)


#view.py
@login_required(login_url="/login/")
def requests(request):
    latest_requests_list = Request.objects.filter(active = True).order_by('average_grade', '-datetime')[:300]
    context = {'latest_requests_list': latest_requests_list, 'count_list': count_list}
    return render(request, "requests.html", context)


В шаблоне есть выпадающий список
#....
        {% for request in latest_requests_list %}
        <tr>
            <td><a href="/requests/{{ request.id }}/"> {{ request.number }}</a></td>
            <td><a href="/requests/{{ request.id }}/">{{ request.datetime }}</a></td>
            <td><a href="/requests/{{ request.id }}/">{{ request.title }}</a></td>
            <td><a href="/requests/{{ request.id }}/">{{ request.actual_status }}</a></td>
            <td><a href="/requests/{{ request.id }}/">{{ request.str_av_grade }} ({{request.average_grade}})</a></td>
            <td>
                <ul class="dropdown">
                    <a class="dropdown-toggle" data-toggle="dropdown" href="#">
                        {{ request.cur_grade }}
                        <span class="caret"></span>
                    </a>
                    <ul class="dropdown-menu">
                        {% for avs in grade_list %} #я в курсе что список не передается. Это просто пример желаемой логики
                        <li><a href="#">{{avs}}</a></li>
                        {% endfor %}
                    </ul>
                </ul>
            </td>
    #....


Каким образом выбранное значение из списка в шабоне принято передавать в объект модели в django?

Переходить по ссылке и устанавливать значение во view (правда прямые пути для изменения данных кажутся мне жутко не кошерными)?

Уверен что простое и логичное решение уже существует.
  • Вопрос задан
  • 5557 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы