Ich habe eine Django-Vorlage, die ich zum Filtern von Objekten in einer Abfrage verwenden möchte. Ich habe eine Gruppe, der ich neue Mitglieder hinzufügen möchte. Ich habe eine Liste von Mitgliedsobjekten, die verwendet werden, um die Gruppenmitglieder zu verfolgen, die hinzugefügt wurden, als die Gruppe erstellt wurde. Die Mitglieder wurden hinzugefügt, indem eine Liste der Benutzer mit einem Kontrollkästchen neben ihren Namen angezeigt wurde. Ich möchte jetzt eine Liste von Freunden anzeigen, die noch nicht Mitglieder der Gruppe sind, und sie dann zur Gruppe hinzufügen, wenn sie ausgewählt sind. Ich bekomme ein Problem mit dem HTML-Template-Filtersystem, das ich erstellt habe, um nur die Liste der Freunde anzuzeigen, die noch keine Mitglieder sind ... kann mir jemand helfen, dies herauszufinden. Ich habe alle den Code unten:Filterproblem mit einer Django-Vorlage mit zwei Querysets - django
hier ist die Abfragen, die übergeben wurden:
# grab the group members
members = Member.objects.filter(group = group).all()
# grab all of the friends fo the logged in user
friender = Friend.objects.filter(user = user.username).all()
friended = Friend.objects.filter(friend = user).all()
friends = friender | friended
# the required parameters for this form
parameters = {
'friends':friends,
'members':members,
'group':group,
'message':message,
}
return render(request, 'groups/add_members.html', parameters)
Hier wird die HTML-Vorlage:
{% extends "general/header.html" %}
{% block content %}
<h1>Create Group</h1>
<p>{{ message }}</p>
<form method="POST">
{% csrf_token %}
{% for friend in friends %}
{% for member in members %}
{% if member.user.username != friend.friend.username %}
{% if member.user.username != friend.user %}
{% if friend.user == user.username %}
<p>
{{ friend.friend.username }}
<input type="checkbox" name="{{friend.friend.username}}" value="{{friend.friend.username}}">
</p>
{% endif %}
{% if friend.friend == user %}
<p>
{{ friend.user }}
<input type="checkbox" name="{{friend.user}}" value="{{friend.user}}">
</p>
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
{% endfor %}
<input type="submit" name="submit" value="submit">
</form>
{% endblock %}
Hier ist die Liste der Freunde und Mitglieder, die es gibt jetzt
logged in user omar
friends: hani, assad, rana, amer
members: hani, assad
hier ist das, was die Anzeige ist:
Hier sind die Modelle:
# the following are models for accepted friend requests
class Friend(models.Model):
user = models.CharField(max_length=22, default='current user')
friend = models.ForeignKey(User, on_delete=models.CASCADE, default=1)
created = models.DateTimeField(auto_now_add=True)
class UserActivity(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
account = models.CharField(max_length=150, null=True)
expense = models.ForeignKey(Expense, null=True, on_delete=models.CASCADE)
request = models.ForeignKey(Request, null=True, on_delete=models.CASCADE)
description = models.CharField(max_length=200, default='some action')
reference = models.IntegerField(default = '101', null = True)
category = models.IntegerField(default=1)
status = models.SmallIntegerField(default=1)
# 1 = unseen
# 2 = seen
created = models.DateTimeField(auto_now_add=True)
# Member stores all of the different members to each of the created groups
class Member(models.Model):
user = models.ForeignKey(User, default=1, on_delete=models.CASCADE)
group = models.ForeignKey(Group, default=1 , on_delete=models.CASCADE)
status = models.SmallIntegerField(default=1)
# 1 = member
# 2 - host
created = models.DateTimeField(auto_now_add=True)
Bitte fügen Sie Ihre Modelle hinzu. –