我是Django的新手,并且正在尝试开发基于它的博客。
在python manage.py makemigrations
和python manage.py migrate
的命令运行良好之后,我进入InteractiveConsole执行Post.objects.all()
并得到一个NameError。
>>> Post.objects.all()
Traceback (most recent call last):
File "<console>", line 1, in <module>
NameError: name 'Post' is not defined
此外,在运行localhost:8000时,Server提供了另一个NameError。
NameError at /
name 'Post' is not defined
Request Method: GET
Request URL: http://localhost:8000/
Django Version: 2.0
Exception Type: NameError
Exception Value:
name 'Post' is not defined
Exception Location: D:\experiment\blogproject\blog\views.py in index, line 6
Python Executable: d:\experiment\blogproject_env\Scripts\python.exe
Python Version: 3.6.3
Python Path:
['D:\\experiment\\blogproject',
'd:\\experiment\\blogproject_env\\Scripts\\python36.zip',
'd:\\experiment\\blogproject_env\\DLLs',
'd:\\experiment\\blogproject_env\\lib',
'd:\\experiment\\blogproject_env\\Scripts',
'd:\\professional soft\\python3.6.3\\Lib',
'd:\\professional soft\\python3.6.3\\DLLs',
'd:\\experiment\\blogproject_env',
'd:\\experiment\\blogproject_env\\lib\\site-packages']
Server time: 星期五, 22 十二月 2017 16:08:10 +0800
以下是我的views.py。
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
post_list = Post.objects.all().order_by('-created_time')
return render(request, 'blog/index.html', context={'post_list': post_list})
如果是,models.py中有Post代码。
class Post(models.Model):title = models.CharField(max_length = 70)
body = models.TextField()
created_time = models.DateTimeField()
modified_time = models.DateTimeField()
excerpt = models.CharField(max_length=200, blank=True)
category = models.ForeignKey(Category, on_delete=models.CASCADE)
tags = models.ManyToManyField(Tag, blank=True)
author = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return self.title
非常感谢你!
访问Interactive Shell不会自动导入所有必需的文件。在开始使用那些非默认方法,函数,模型等之前,您需要导入它。
在您的情况下,您必须在使用之前导入Post模型。
from app.models import Post
应用程序是模型所在的实际应用程序。
这对您的视图也很重要,您必须在使用之前导入模型。
您可以在视图中导入模型。
在你的情况下应该是这样的:
from appName.models import Post
希望这可以帮助!