0

私は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が与えられた場合、このソリューションのフィードバックに含まれているすべてのアイデア2を取得するクエリを作成するにはどうすればよいですか。そして、Djangoでも可能かどうか疑問に思っています。どうもありがとう!このようなことを試しましたが、idea1ではなくidea2を探していることをどのように指定できますか?

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

1 に答える 1

2
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)

ドキュメントのパフォーマンスに関する考慮事項のセクションを確認してください。

于 2013-01-31T18:02:10.970 に答える