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)

view.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 = ????

やりたいこと(テンプレート):

{attendees_list の出席者の % %}

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

これらの 3 つのリストを 1 つにまとめて、それらがどのリストに属しているか (ビューまたはテンプレートのどちらにあるか) を確認するにはどうすればよいですか? 1 つのリストが必要な理由は、出席者をアルファベット順に並べ替えるためです。事前にご提案いただきありがとうございます。

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

1つのオプションは、タプルのリストを作成することです: (<profile>, <status>)、その後、あなたのリストの最初の作成を繰り返し、(profile, 'verified')次に、attendee_listフィールドに割り当ててコンテキストに渡すことができる単一のリストができるまで、他のリストに対して同じことを行うことができます?

于 2012-09-13T19:27:26.450 に答える