我正在尝试使用外键字段连接两个与 Django 相关的表。
class Question(models.Model):
description = models.TextField('Description', blank=True, null=True)
class Vote(models.Model):
question = models.ForeignKey(Question)
profile = models.ForeignKey(UserProfile)
value = models.IntegerField('Value')
creator = models.ForeignKey(User)
我尝试使用
创建一个查询集questions = Question.objects.filter(vote__creator=3).values()
结果是这样的集合
+----+-------------+
| id | description |
+----+-------------+
....
如果我在 mysql 中手动运行一个稍微类似的查询
select * from questions as t1 join votes as t2 on t1.id=question_id where creator_id=3;
结果是这样的集合
+----+-------------+------+-------------+------------+-------+------------+
| id | description | id | question_id | profile_id | value | creator_id |
如何防止 Django 从生成的查询集中删除列?我真的很想检索一个完全连接的表。
最佳答案
使用 objects.select_related():
questions = Question.objects.select_related().filter(vote__creator=3).values()
关于python - Django JOIN 消除所需的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25105146/