Django 教程第 3 部分:创建视图和模板时出错

Posted

技术标签:

【中文标题】Django 教程第 3 部分:创建视图和模板时出错【英文标题】:Django Tutorials part 3: Error while creating view and template 【发布时间】:2017-11-15 14:34:28 【问题描述】:

我开始学习 Django (1.11) 并关注 Django Tutorials。在这部分中,我应该使用模板创建动态视图(索引方法)。但是在我创建模板之后

% if latest_question_list %
    <ul>
    % for question in latest_question_list %
        <li><a href="/polls/ question.id /"> question.question_text </a></li>
    % endfor %
    </ul>
% else %
    <p>No polls are available.</p>
% endif %

和使用模板的索引视图

from django.http import HttpResponse
from django.template import loader

from .models import Question


    def index(request):
        latest_question_list = Question.objects.order_by('-pub_date')[:5]
        template = loader.get_template('polls/index.html')
        context = 
            'latest_question_list': latest_question_list,
        
        return HttpResponse(template.render(context, request))

我遇到了一个错误: *名称错误在 /polls/ *未定义全局名称“latest_question_list”**

【问题讨论】:

【参考方案1】:

试试这个:

...

from django.template import loader

from .models import Question

def index(request):
    latest_question_list = Question.objects.order_by('-pub_date')[:5]
    template = loader.get_template('polls/index.html')
    context = 'latest_question_list': latest_question_list, 
    return HttpResponse(template.render(context, request))

【讨论】:

【参考方案2】:

试试这个:

from django.shortcuts import render def index(request): latest_question_list = Question.objects.order_by('-pub_date')[:5] context = 'latest_question_list': latest_question_list return render(request,'polls/index.html',context)

【讨论】:

以上是关于Django 教程第 3 部分:创建视图和模板时出错的主要内容,如果未能解决你的问题,请参考以下文章

Django 教程第 3 部分 - /polls/ 中的 NoReverseMatch

编写你的第一个 Django 应用程序,第4部分

Django 教程第 2 部分模板——base_site.html 更改未反映

模板不存在“django 2.0”

利用django创建一个投票网站

Django基础第一篇