【发布时间】:2017-02-27 14:15:36
【问题描述】:
我正在使用 Django REST 框架来实现关联调度系统,用户可以在其中订阅关联并接收其事件。每个协会可以有很多组(您在订阅该协会时选择自己的组),因此每个组的活动通常相同,但地点和日期不同。
模型如下所示:
class Association(models.Model):
name = models.CharField(max_length=40, blank=False, unique=True)
description = models.CharField(max_length=500, blank=False)
class AssocMember(models.Model):
class Meta:
unique_together = (("user", "assoc"),)
user = models.ForeignKey('user.User')
assoc = models.ForeignKey('associations.Association')
is_admin = models.BooleanField(default=False)
group = models.SmallIntegerField(default=-1)
class Event(models.Model):
name = models.CharField(max_length=40, blank=False)
date = models.DateTimeField(blank=False)
assoc = models.ForeignKey('associations.Association')
group = models.IntegerField(blank=True, default=-1)
我需要在我的 API 中实现一个get_queryset(),它返回与其组对应的已连接用户的所有事件。但为此,我必须在过滤期间为每个事件访问 AssocMember,并创建一个自定义条件(如 Python 中的普通 .filter())
使用 Django REST 过滤器的最佳方法是什么?
提前致谢。
【问题讨论】:
标签: django filter django-rest-framework django-filter