如何将当前用户用作QuerySet属性中的方法参数

时间:2018-09-13 12:33:27

标签: django

  • 我有活动
  • 用户可以订阅活动
  • 在视图中,我有一个事件列表
  • 在列表模板中,我想使用event.allready_subscribed之类的东西。这样当前用户可以看到他/她已经订阅了。

我无法在模型方法中执行此操作,因为我没有可用的request.user。

1 个答案:

答案 0 :(得分:0)

感谢您的评论。

my_events = EventRegistration.objects.filter(user=request.user.id).values_list('event_id', flat=True)

events = Event.objects.all().annotate(allready_registered=models.Case(models.When(pk__in=my_events, then=models.Value(True)), default=models.Value(False), output_field=models.BooleanField()))