- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我开始学习 Django QuerySets,但在这种情况下我没有成功编写它,因为我必须聚合两个通过外键相关的模型。
我有 2 个模型 user
和 course
,其中 course 包含 user
的外键
class user(models.Model):
first_name = models.CharField(max_length=100)
middle_name = models.CharField(max_length=100, null=True, blank=True)
class Course(models.Model):
user= models.ForeignKey(User)
course_name = models.CharField(max_length=100)
我想将这个sql
语句翻译成querysets
:
select * from user u, course c
where u.id = c.user_id
and c.course_name='science' ;
有人可以帮我吗?
最佳答案
如果您想要的是一组类(class),其中每个类(class)实例都有一组相关用户,您可以执行以下操作:
Course.objects.select_related('user').filter(course_name='science')
请参阅:https://docs.djangoproject.com/en/1.10/ref/models/querysets/#select-related
select_related(*fields) Returns a QuerySet that will “follow” foreign-key relationships, selecting additional related-object data when it executes its query. This is a performance booster which results in a single more complex query but means later use of foreign-key relationships won’t require database queries.
另一方面,如果您想要用户列表以及他们正在关注的类(class)
user.objects.filter(course__name='science')
这就是外键关系的反向遍历。请注意,按照惯例,django 模型名称以大写字母开头。您的模型是“用户”,但实际上应该是“用户”
关于python - 如何用 Django 编写这个查询集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39766855/
我是一名优秀的程序员,十分优秀!