【问题标题】:how can i access the objects in different view functions如何访问不同视图函数中的对象
【发布时间】:2020-01-12 11:23:46
【问题描述】:

我正在尝试创建一个 header.html 来为所有页面创建一个标题,我想创建一个用于导航黑白页面的下拉列表,我想从模型中获取标题我在这里有两个视图 一个用于主页和标题页 主页浏览量:

def homepage(request):

aboutinfo = aboutpage.objects.all()
servicesinfo = services.objects.all()
programinfo = prgm.objects.all()

return render(request, 'index.html', {'aboutinfo': aboutinfo, 'servicesinfo': servicesinfo, 'programinfo': programinfo})

标题视图

def header(request):

info = services.objects.all()
return render(request, 'header.html', {'info':info})

当我尝试信息时它不起作用,我从主页尝试服务信息它只工作索引页`

         <li class="menu-has-children"><a href="#services">All Services</a>
        <ul>
          {% for services in /* what is here */.all %}
          <li><a href="{% url 'details' services.slug %}">{{ services.title }}</a></li>
        {% endfor %}
        </ul>
     </li>

【问题讨论】:

  • {% for services in servicesinfo.all %}
  • 是的,我试过了,但只在索引页而不是在标题页中工作
  • 如果你想在标题页中添加 servicesinfo = services.objects.all() 以及上下文

标签: python django django-models django-templates django-views


【解决方案1】:

毕竟要加括号

info = services.objects.all() 

【讨论】:

  • 那是因为您将对象返回到 header.html 尝试在那里访问它。
【解决方案2】:

试试这个:

views.py

def header(request):
    services = services.objects.all()
    return render(request, 'header.html', {'services':services})

header.html

<ul>
    {% for service in services %}
    <li>
        <a href="{% url 'details' service.slug %}">{{ service.title }}</a>
    </li>
    {% endfor %}
</ul>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-02
    • 2010-12-15
    相关资源
    最近更新 更多