2016-12-05 6 views
0

Ich versuche, mein Formular nicht anzuzeigen (Anzeige: keine;), wenn die maximale Anzahl von Personen für ein bestimmtes Ereignis angemeldet/überschritten wurde. Anmeldungen ist ein Modell mit Feldern eventname und fullname. Ich benutze auch eine ListView, FormView, um die Liste der Ereignisse mit jeweils einem Anmeldeformular zu durchlaufen.Django - Wie man einen Inkrementzähler innerhalb der Vorlage verwendet

Ich versuche, so etwas wie zu tun:

<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 }}"> 

{% if signups.eventname == events.name%} das Modell signups für Objekte überprüft eventnames mit passenden so nur, dass für die gewünschten Ereignisobjekte wird gezählt. Dies ist alles innerhalb von {% für Ereignisse in events_list%} {% endfor%} und berücksichtigt Text in Sternchenkommentaren.

Wie würde ich das tun? Wenn Sie andere Dateien oder Informationen sehen möchten, werde ich dies gerne bearbeiten.

Antwort

3

Denken Sie, dass Sie in die falsche Richtung gehen. Holen Sie sich die Zahl der Menschen zuerst in Ihrem Ansicht angemeldet die Sie dann in Ihre Vorlage als Template-Variable passieren kann und machen ein, wenn die Bedingung etwas wie folgt aus:

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

Obwohl, wenn ich mich richtig ifequal erinnern kann veraltet sein, also passen Sie das entsprechend an.

+0

Ich dachte daran, wie SignUps.objects.filter (eventname = * Ereignisname im Ereignismodell *). Count(), aber ich bin mir nicht sicher, wie ich {{events.name}} für die übergeben würde bestimmtes Ereignis, für das der Benutzer sich anmeldet, weil ich eine for-Schleife in der Vorlage verwende, um die Objekte in Ereignissen aufzulisten. –

+0

Gibt es im Prinzip eine Möglichkeit, {{events.name}}, das ist der Ereignisname, der für diese bestimmte Schleife eindeutig ist, an views.py? –

Verwandte Themen