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.
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. –
Gibt es im Prinzip eine Möglichkeit, {{events.name}}, das ist der Ereignisname, der für diese bestimmte Schleife eindeutig ist, an views.py? –