2016-12-05 2 views
0

Я пытаюсь, чтобы моя форма не отображалась (display: none;), если максимальное количество людей, зарегистрированных для определенного события, достигнуто/превышено. signups - это модель с поля eventname и fullname. Я также использую ListView, FormView, чтобы перебирать список событий, каждый из которых имеет форму регистрации.Django - Как использовать счетчик приращений внутри шаблона

Я пытаюсь сделать что-то вроде:

<form action="/events/" class="form" method="POST" style="{% for signups in signup %}{% if signups.eventname == events.name %}*counter increment here*{% if *counter value* >= events.maximum %}display:none;{% endif %}{% endif %}{% endfor %}" id="{{ events.name }}" name="{{ events.name }}"> 

{%, если signups.eventname == events.name%} проверяет модели подписок для объектов с совпадающими eventnames так, что только объекты для полезного события подсчитывается. Это все внутри {% для событий в events_list%} {% endfor%} и рассматривает текст внутри комментариев звездочки.

Как мне это сделать? Если вы хотите увидеть какие-либо другие файлы или информацию, я с удовольствием отредактирую это.

ответ

3

Думайте, что вы идете по неправильному пути. Получить количество людей подписались на первый в своей зрения, которые затем можно передать в шаблон в качестве переменной шаблона и сделать, если условие что-то вроде этого:

{% if (signed_up_variable) < (max number) %} 
    # display the form 
{% endif %} 

Хотя, если я правильно помню ifequal могут быть устаревшими, поэтому соответствующим образом отрегулируйте их.

+0

Я думал о том, как делать SignUps.objects.filter (eventname = * имя события в модели событий *). Count(), но я не уверен, как передать {{events.name}} для которое пользователь пытается зарегистрироваться, потому что я использую цикл for в шаблоне для отображения объектов в событиях. –

+0

В принципе, есть способ передать {{events.name}}, который является именем события, уникальным для этого конкретного цикла, to views.py? –

Смежные вопросы