【发布时间】:2020-07-07 17:14:15
【问题描述】:
我的 Django 项目有一个多对多的关系 Doctor -- Speciality
我正在尝试仅列出具有医生记录的专科,以允许用户请求预约。
我现在有这个
context['specialities'] = [s for s in Speciality.objects.all() if s.doctor_set.all()]
但这不是一个优雅的解决方案。我只想列出具有活跃 (is_active=True) 医生的专业。
如何添加 is_active 过滤器?
更新! 在这里。
[s for s in Speciality.objects.all() if s.doctor_set.filter(is_active=True)]
它有效,但它仍然是一个不优雅的解决方案。有什么好的查询可以解决这个问题吗?
更新! 在这里。型号。
class Speciality(models.Model):
name = models.CharField(max_length=64)
class Doctor(models.Model):
name = models.CharField(max_length=64)
specialities = models.ManyToManyField(Speciality)
is_active = models.BooleanField(default=True)
【问题讨论】:
-
你能给我们看看你的模型吗?
-
@ArakkalAbu 完成
标签: django orm many-to-many