除了一个变量之外,每个变量都进入了index.html?

问题描述 投票:0回答:1

我正在做一个 django 项目(我是 django 的新手)。到目前为止,除了一个我似乎无法弄清楚的问题之外,一切都运行顺利。

这是我的 Django 获取方法:

class Index(TemplateView):
    template_name = 'project/index.html'

    def get(self, request):
        allBrands = InventoryItem.objects.values_list('brand', flat=True).distinct().order_by('totalReviews')
        allAgeGroups = InventoryItem.objects.values_list('ageGroup', flat=True).distinct()

        items = InventoryItem.objects.all()

        return render(request, self.template_name, {
      'items': items,
      'allBrands': allBrands,
      'allAgeGroups': allAgeGroups,
    })

index.html 的重要部分

{% extends "project/base.html" %}

{% block content %}
{% include "project/nav.html" with allBrands=allBrands allAgeGroups=allAgeGroups %}

<div>{{allAgeGroups}}</div>
<div>{{allBrands}}</div>

我正在尝试将信息获取到 nav.html allBrands 让它很好,但 allAgeGroups 没有使它进入 index.html 或 nav.html

当我添加

'allAgeGroups'
时,我遇到了以下问题:由于某种原因
index.html
没有收到信息。

查询有效。

当我在

print(allAgeGroups)
函数中
get()
时,我在控制台中什么也没有得到

当我在

print(allAgeGroups)
函数中
post()
时,我在控制台中得到
<QuerySet ['Adult', 'Youth']>
(我想要的)

我刚刚意识到我可以从渲染函数中删除所有内容,保存文件,刷新页面,并且一切仍然有效???

发生了什么事?

谢谢你。

django django-views
1个回答
0
投票

您对同一个模型调用了 3 次,尽管这似乎没有必要。 最好尝试这样的事情:

views.py

class Index(TemplateView):
    template_name = 'project/index.html'

    def get(self, request):
        items = InventoryItem.objects.all()

        return render(request, self.template_name, {
      'items': items,
    })

index.html

{% extends "project/base.html" %}

{% block content %}
   {% include "project/nav.html" with items=items %}

   {% for item in items %}
      <div>{{ item.ageGroup }}</div>
      <div>{{ item.brand }}</div>
   {% endfor %}
{% endblock %}

并且不要忘记在

urls.py
中注册您的 TemplateView。

© www.soinside.com 2019 - 2024. All rights reserved.