Yuv*_*dam 3 django django-models
考虑以下Django模型:
class User(models.Model):
pass
class Note(models.Model):
user = models.ForeignKey(User)
color = models.CharField()
Run Code Online (Sandbox Code Playgroud)
用户可能有许多不同颜色的笔记.获取以下查询的最佳方法是什么:
给我所有笔记,但仅限于至少有一个红色注释的用户
天真的方式是获取至少有一个红色音符的用户列表,然后对音符进行过滤user__in=long_list,但这看起来很尴尬.解决方案似乎是排除任何没有单个红色注释的用户,但我没有看到应该如何做到这一点.
此外,此查询将在非常大的用户和注释集上运行,并且必须具有高性能.
除非绝对必要,否则在没有使用本机SQL的情况下,这样做的正确方法是什么?
您可以使用从用户到笔记的向后关系来过滤用户,让我们尝试这样的事情
Note.objects.filter(user__note__color='red')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |