繁体   English   中英

查询ForeignKey的Django对象列表

[英]Query Django Object Lists of ForeignKey

我有一个MenuSection模型和一个Product模型。 产品模型的MenuSection设置为ForeignKey。 一切工作正常,除了我很难弄清楚如何查询产品模型并列出对于ForeignKey唯一的对象列表,但在模板顶部仅打印一次ForeignKey值。

我希望产品如何打印到模板的示例:

Salads (FK) <= Only printed once 
   Cobb (product.name)
   Ceasar (product.name)
Pizza (FK)
   Supreme (product.name)
   Veggie (product.name)
...

标签

@register.inclusion_tag('tags/_starters.html', takes_context=True)
def products(context):
    product = Product.objects.all()
    return {
        'product': product,
        'request': context['request'],
    }

标签模板

{% for p in product %}
  <div class="menu-wrapper">
    <div class="menu-description">
    <h1>{{ p.section.name }}</h1> <======= This is the (FK) that I need to print once.
      <div class="menu-list">
        <h5>{{ p.name }}</h5>

        <p class="price">
          {% if p.price_b %}
            {{ p.price_a }}/
            {{ p.price_b }}
          {% else %}
            {{ p.price_a }}
          {% endif %}
        </p>

        <span class="menu-dot-line"></span>
      </div>
      <p class="menu-ingredients">{{ p.description }}</p>
    </div>
  </div>
{% endfor %}

模型

@register_snippet
class Product(ClusterableModel):
    section = models.ForeignKey(MenuSection, verbose_name='Menu Section')
    name = models.CharField(max_length=255, verbose_name='Menu Item Name')
...

返回查询而不是查询标签中的Product

return {
    'menu_sections': MenuSection.objects.all()
}

然后,在您的模板中

{% for menu_section in menu_sections %}
    {{ menu_section.name }}
    {% for product in menu_section.product_set.all %}
        {{ product.name }}
    {% endfor %}
{% endfor %}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM