Wie kann ich nur meine Mitgliedschaft einstellen, anstatt alle in for-Schleife?Wie greife ich auf die Eigenschaften eines Viele-zu-Viele mit Mitgliedschaft in Django zu?
template.html:
{% for g in gr %}
<div class="jumbotron">
<div class="jumbo2">
<form method="POST" class="post-form"> {% csrf_token %}
<p id="name"><b>Groups name:</b> {{g.name}}</p><br>
{% for membership in g.membership_set.all %}
<p><b>Member:</b> {{ membership.person }} - {{ membership.role }}</p>
{% endfor %}
<br>
<span class="desc2">Groups description:</span>
<p id="desc">{{g.description}}</p><br>
{% for membership in g.membership_set.all %}
{% if membership.leader == False %}
<button style="float: right" type="submit" name = "leave" value = "{{g.name}}" class="save btn btn-default">Leave</button>
{% elif membership.leader == True %}
<button style="float: right" type="submit" name = "delete" value = "{{g.name}}" class="save btn btn-default">Delete</button>
{% endif %}
{% endfor %}
</form>
<br><br>
<p></p>
</div>
</div>
{% endfor %}
models.py:
class Person(models.Model):
name = models.CharField(max_length=128)
def __str__(self): # __unicode__ on Python 2
return self.name
class Group(models.Model):
name = models.CharField(max_length=128)
members = models.ManyToManyField(Person, through='Membership')
description = models.TextField(max_length=350)
def __str__(self): # __unicode__ on Python 2
return self.name
class Membership(models.Model):
person = models.ForeignKey(Person)
leader = models.BooleanField(default=False)
group = models.ForeignKey(Group)
role = models.CharField(max_length=50)
Meine Tasten sind so viele, wie ich in irgendeiner Gruppe haben Benutzer displeyed. Ich möchte nur 1 Schaltfläche anzeigen, und ich muss ForLoop nur für meine Mitgliedschaft in dieser Gruppe präzisieren. Wie kann ich das machen?
Was meinen Sie mit "Meine Mitgliedschaft"? Es ist völlig unklar. Kannst du deine Modelle auch posten? –
Ich meine, dass die Schleife {% für die Mitgliedschaft in g.membership_set.all%} alle Mitgliedschaften in einer Gruppe durchläuft. Und deshalb, wenn ich überprüfen möchte, ist meine Mitgliedschaft (meine Person in dieser Gruppe) Leader-Feld auf True oder False, aber diese Schleife, was ich jetzt habe, durchläuft alle Mitglieder (alle Mitgliedschaften) in dieser Gruppe. Ok, ich ändere und füge Modelle hinzu – Damian