【问题标题】:Django 'global name' errorDjango“全局名称”错误
【发布时间】:2016-05-25 12:25:42
【问题描述】:

我正在设置我的第一个 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 请求网址:http://localhost:8000/

Django 版本:1.9.2 Python 版本:2.7.11 已安装的应用程序: ['收藏', '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']

追溯:

get_response 中的文件“//anaconda/envs/hellovenv/lib/python2.7/site-packages/django/core/handlers/base.py” 149. response = self.process_exception_by_middleware(e, request)

get_response 中的文件“//anaconda/envs/hellovenv/lib/python2.7/site-packages/django/core/handlers/base.py” 147. response = Wrapped_callback(request, *callback_args, **callback_kwargs)

索引中的文件“/Users/wogsland/Projects/hellowebapp/collection/views.py” 7. things = Thing.objects.all()

异常类型:NameError at / 异常值:未定义全局名称“事物”

【问题讨论】:

    标签: python django


    【解决方案1】:

    您尚未将您的 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,
        })
    

    【讨论】:

    • 我知道它必须是简单的。谢谢!
    猜你喜欢
    • 2013-06-07
    • 1970-01-01
    • 1970-01-01
    • 2019-09-09
    • 2013-07-03
    • 2013-10-12
    • 1970-01-01
    • 1970-01-01
    • 2011-01-14
    相关资源
    最近更新 更多