その特定のイベントの出席者を作成する登録ボタンがあります(機能します)。ただし、[登録] をクリックすると、テンプレート'is_attending'= True
は のすべてのイベントに対して (登録済み!) を認識しupcoming
ます。
意見:
def index(request):
upcoming = Event.objects.filter(date__gte=datetime.now())
if request.user.is_authenticated():
profile = Profile.objects.get(user=request.user)
is_attending = False
for event in upcoming:
attendees = [a.profile for a in Attendee.objects.filter(event=event)]
if profile in attendees:
is_attending = True
テンプレート
{% if is_attending %}
<a><Registered!</a>
{% else %}
<form>... registration form ... Register Now...
私は何が起こっていると思います:
event 1 : Registered!
event 2 : Registered!
event 3 : Registered!
私が必要とするのは:
event 1 : Registered!
event 2 : Register Now
event 3 : Register Now
なぜこれがうまくいかないのかよくわかりませんか?イベントis_attending
に登録した人だけに戻るにはどうすればよいですか?upcoming
モデル:
class Attendee(models.Model):
event = models.ForeignKey(Event)
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
profile = generic.GenericForeignKey('content_type', 'object_id')