私はこのようなものを設定したいくつかのモデルを持っています:
class Bar(models.Model):
baz = models.CharField()
class Foo(models.Model):
bar1 = models.ForeignKey(Bar)
bar2 = models.ForeignKey(Bar)
bar3 = models.ForeignKey(Bar)
そして、コードの他の場所で、私はBarのインスタンスに行き着き、それが接続されているFooをある程度見つける必要があります。今、私はQを使用して複数のORクエリを実行することを思いつきました。
foo_inst = Foo.objects.get(Q(bar1=bar_inst) | Q(bar2=bar_inst) | Q(bar3=bar_inst))
私が理解する必要があるのは、3つのケースのうち、実際にヒットしたのは、少なくともメンバーの名前(bar1、bar2、またはbar3)です。これを行う良い方法はありますか?その情報を収集するためにクエリを構造化するためのより良い方法はありますか?