首页 文章

Django 'global name'错误

提问于
浏览
2

我正在设置我的第一个Django应用程序 . 我在使数据库模型工作时遇到了一些麻烦 .

这是我的模板:

{% extends 'layouts/base.html' %}
{% load humanize %}
{% block title %}I am a Django God - {{ block.super }}{% endblock %}
{% block content %}
  <h1>Delusions of Grandeur #{{ munber }}</h1>
  <p>They make life EXCITING for {{ thing }}.</p>
  <p>{% if munber %}Number exists!{% else %}booooo{% endif %}</p>
  <p>
    There are {{ munber }} dog{{ munber|pluralize }} and {{ single|apnumber }}
    ocelot{{ single|pluralize }}.
  </p>
{% endblock %}

这是models.py:

from __future__ import unicode_literals

from django.db import models

# Create your models here.
class Thing(models.Model):
    name = models.CharField(max_length=255)
    description = models.TextField()
    slug = models.SlugField(unique=True)

这是views.py:

from django.shortcuts import render

# Create your views here.
def index(request):
    munber = 6
    thing = "Thinnged Nam"
    things = Thing.objects.all()
    return render(request, 'index.html', {
        'munber': munber,
        'single': 1,
        'thing': thing,
        'things':things,
    })

我的错误是

请求方法:GET请求URL:http:// localhost:8000 / Django版本:1.9.2 Python版本:2.7.11已安装的应用程序:['collection','django.contrib.admin','django.contrib.auth ','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','django.contrib.humanize']已安装的中间件:['django.middleware .security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.SessionAuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware'] Traceback:File“// anaconda / envs / hellovenv / lib / python2 . 7 / site-packages / django / core / handlers / base.py“in get_response 149. response = self.process_exception_by_middleware(e,request)File”// anaconda / envs / helloven v / lib / python2.7 / site-packages / django / core / handlers / base.py“在get_response 147. response = wrapped_callback(request,* callback_args,** callback_kwargs)File”/ Users / wogsland / Projects / hellowebapp / index / views.py“in index 7. things = Thing.objects.all()异常类型:NameError at / Exception值:全局名称'Thing'未定义

1 回答

  • 4

    您尚未将 Thing 类导入 views.py 文件 . 假设您的 models.pyviews.py 位于同一文件夹中,您可以将 views.py 更新为:

    from django.shortcuts import render
    from .models import Thing
    
    # Create your views here.
    def index(request):
        munber = 6
        thing = "Thinnged Nam"
        things = Thing.objects.all()
        return render(request, 'index.html', {
            'munber': munber,
            'single': 1,
            'thing': thing,
            'things':things,
        })
    

相关问题