0

我有一个活动的与会者名单。与会者对象被键入到配置文件对象。在视图中,我试图附加 3 个列表来弥补attendee_list

模型.py

class Attendee(models.Model):
    created = models.DateTimeField(auto_now_add=True)
    modified = models.DateTimeField(auto_now=True)
    profile = models.ForeignKey(Profile)
    event = models.ForeignKey(Event)
    verified = models.BooleanField(default=False)
    from_user = models.BooleanField(default=False)

视图.py

verified_attendees = [va.profile for va in Attendee.objects.filter(event=event, verified=True)]
unverified_attendees = [uva.profile for uva in Attendee.objects.filter(event=event, verified=False, from_user=True)
pending_attendees = [pa.profile for pa in Attendee.objects.filter(event=event, from_user=False, verified=False)]
attendee_list = ????

我想要完成的(模板):

{% 为参加者列表中的参加者 %}

...
Name            |       Status
--------------------------------------
Jon Doe         |       Pending
Annie Smith     |       Verified!
Abraham Snow    |       Confirm Yes/No?

如何将这 3 个列表合二为一,并且仍然检查它们属于哪个列表(无论是在视图还是模板中)?我想要一个列表的原因是因为我将按字母顺序对与会者进行排序。提前感谢您的建议!

4

2 回答 2

4

当你可以这样做时,为什么要首先分裂:

attendees = [(a.profile, a.verified, a.from_user)
                 for a in Attendee.objects.filter(event=event)]

进而:

{% for attendee, verified, from_user in attendees_list %}

{% if verified %}然后,您可以使用或{% if from_user %}块在模板级别控制每个人所说的内容。

或者,您可以这样做:

attendees = Attendee.objects.filter(event=event)

并在模板中直接引用attendee.profileattendee.verified和。attendee.from_user

于 2012-09-13T19:32:21.613 回答
1

一个选项可能是创建一个元组列表:(<profile>, <status>),然后您可以迭代第一个列表创建(profile, 'verified'),然后对其他列表执行相同操作,直到您有一个列表,您可以将其分配给参加者列表字段并传递给上下文?

于 2012-09-13T19:27:26.450 回答