Django NameError: 未定义名称 'views

15 投票
3 回答
54922 浏览
提问于 2025-04-18 12:36

我正在学习一个关于如何快速开发网站的教程,使用的是 Django

我按照教程的步骤做了(我觉得是完全一样的),但是当我尝试查看首页时,出现了以下错误:

NameError at /name 'views' is not defined
Exception location: \tuts\urls.py in <module>, line 12

这是 urls.py 的内容:

from django.conf.urls import patterns, include, url

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',

    url(r'^admin/', include(admin.site.urls)),
    url(r'^$', views.index, name='index'),
)

这是 views.py 的内容:

from django.shortcuts import render

# Create your views here.
def index(request):
    items = Item.objects.order_by("-publish_date")
    now = datetime.datetime.now()
    return render(request,'portfolio/index.html', {"items": items, "year": now.year})

这是 models.py 的内容:

from django.db import models

# Create your models here.
class Item(models.Model):
    publish_date = models.DateField(max_length=200)
    name = models.CharField(max_length=200)
    detail = models.CharField(max_length=1000)
    url = models.URLField()
    thumbnail = models.CharField(max_length=200)

我还准备了一个基本的 index.html 模板。从我观察的情况来看,我觉得我需要在某个地方导入我的视图。

但是我对 Django 完全是新手,所以我一点头绪都没有。有什么建议吗?

3 个回答

0

如果你在Django中使用rest_framework,那么你需要导入:

from rest_framework import views
1
  • 这里我们需要在网址模型(urls model)中导入视图模型类(views model classes),所以上面的句子就是在网址模型中导入你的视图模型类。
from .views import index

在urls.py文件中添加这段代码

35

错误的代码行是

    url(r'^$', views.index, name='index'),
    #----------^

这里的 views 没有定义,所以出现了错误。你需要从你的应用中导入它。

在 urls.py 文件中添加这一行

from <your_app> import views
# replace <your_app> with your application name.

撰写回答