2016-07-05 3 views
-1
class Server(models.Model): 
    client = models.ForeignKey(Client, on_delete=models.CASCADE) 
    ... 

class Schedule(models.Model): 
    client = models.ForeignKey(Client, on_delete=models.CASCADE) 
    ... 

class LineItem(models.Model): 
    schedule = models.ForeignKey(Schedule, on_delete=models.CASCADE) 
    server = models.ForeignKey(Server, blank=True, null=True) 
    ... 

私は、サーバーの詳細ページで指定されたサーバオブジェクトに関連するすべてのLineItemsにジャンゴ、複数entry_set.allによって設定されたフィルタクエリ()関係

{% for schedule in server.client.schedule_set.all %} 
    {% for lineitem in schedule.lineitem_set.all %} 
     {% if lineitem.server == server %} 
      {{ lineitem.id }} 
      {{ lineitem.description }} 
     {% endif %} 
    {% endfor %} 
{% endfor %} 
を表示するには、私のテンプレートでいくつかの本当に厄介なロジックを持っています

UPDATE:明確化

ために私は次のようにビューによって内側から関連情報を入手することができるよ:

そして、テンプレート内

{% for item in line_items %} 
    {{ item }} 
{% endfor %} 

質問は、私は、単一のクエリを使用してこれらの関連のLineItemsを絞り込むことができます、ありますか?

答えて

0

逆の関係model_setの管理者に従うのではなく、あなたは、ラウンドこの方法を行うには、それが実際に私に起こったことはありませんDjangoのORM

line_items = LineItem.objects.filter(schedule__client=server.client) 
+0

からダブルアンダースコア記法を使ってForeignKey関係に従うことができます!私は明日まで仕事を中止しています。私は99%ですが、これは私が後になるものです。ありがとう! –

関連する問題