views.py;Falsche Iteration in ForLoops in Django mit Querysets
cvs = Cv.objects.all()
cv = Cv.objects.filter(author = request.user)
per = Person.objects.all()
gr = Group.objects.filter(members__name=request.user)
perr = Person.objects.filter(name=request.user)
mem = Membership.objects.filter(group = gr, person = perr)
form = GroupForm()
context = {
'gr': gr,
'per':per,
'mem':mem,
'form': form,
'cvs':cvs,
'cv':cv,
}
return render(request, 'groups.html', context)
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)
template.html:
{% for z in mem %}
<div class="jumbotron">
<div class="jumbo2">
<form method="POST" class="post-form"> {% csrf_token %}
<p id="name"><b>Groups name:</b> {{z.group}}</p><br>
{% for member in z.group.members.all %}
<p><b>Member:</b> {{member.name}}
{% if z.person.name == member.name %}
- {{z.role}}</p>
{% endif %}
{% endfor %}
</form>
</div>
</div>
{% endfor %}
Wenn i Gruppe zu erstellen, ist meine Rolle "Team Leader", wenn ich jemanden in die Gruppe aufnehmen, Seine Rolle ist "Noob". Ich möchte alle Mitglieder der Gruppe und ihre Rollen anzeigen. Das Problem ist: meine tatsächliche Leistung ist:
damian - Team leader
test <- and no role, but should be "Noob"
Was ich will, bekommen:
damian - Team Leader
test - Noob
Jeder knwo wie diese zu lösen? Danke für jede Hilfe!
nachschlagen Aber wie? Ich kann dem Member im Modell keine Eigenschaften "role" hinzufügen. Oder vielleicht habe ich dich nicht verstanden. – Damian
Sorry, ich habe mich mit dem Namen der Mitgliedsvariablen und dem Mitgliedschaftsmodell herumgeschlagen. Schauen Sie hier: http://StackOverflow.com/Questions/3368442/How-Doi-Access-the-Properties-of-a-Many-To-Many-Through-Table-From-A-Django-t es sieht sehr ähnlich zu Ihrer Frage und wird wahrscheinlich eine bessere Antwort als das, was ich bieten kann. – xthestreams
Okay, danke Alter – Damian