Django相关_名称向后跟随

Django相关_名称向后跟随,django,Django,我在Django有以下型号: class Feedback(models.Model): solution=models.ForeignKey(Solution, related_name='solution1') idea=models.ForeignKey(Idea,null=True, blank=True,related_name='idea1') idea2=models.ForeignKey(Idea, related_name='idea2') 给定解决

我在Django有以下型号:

class Feedback(models.Model):
    solution=models.ForeignKey(Solution, related_name='solution1')
    idea=models.ForeignKey(Idea,null=True, blank=True,related_name='idea1')
    idea2=models.ForeignKey(Idea, related_name='idea2') 
给定解决方案的ID,我如何编写一个查询来检索该解决方案反馈中的所有ideas2。我想知道在Django是否可能。谢谢! 我尝试过类似的方法,但是如何指定我要查找的是idea2,而不是idea1

ideas2= Idea.objects.filter(feedback_solution1=solutionID)


查看。

中的性能注意事项部分,无需显式的
list()
casting。
值列表(..,flat=True)
已返回列表type@karthikr
values\u list
返回的是
ValuesListQuerySet
,而不是列表。没有
list()
casting,Django将执行一个子查询,使用
list()
它将在一个单独的查询中获取
idea2\uu pk
值。正如我在解决方案中所说的,检查性能注意事项,它解释了为什么可能应该使用list()以下是文档:@Alasdair@karthikr尝试在shell中执行
values\u list
查询,并检查结果的类型。您将看到它是一个
ValuesListQuerySet
实例。我在文件中没有看到任何与此相矛盾的东西。
feedbacks = list(Feedback.objects.filter(solution=solutionID).values_list('idea2__pk', flat=True))
ideas2 = Idea.objects.filter(pk__in=feedbacks)
feedbacks = list(Feedback.objects.filter(solution=solutionID).values_list('idea2__pk', flat=True))
ideas2 = Idea.objects.in_bulk(feedbacks)