2017-12-22 9 views
-2

私はDjangoの新機能で、これに基づいてブログを開発しようとしていました。Django:InteractiveConsoleに 'Post'という名前が定義されていません

python manage.py makemigrationspython 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に郵便番号があります。

クラス・ポスト(models.Model): タイトル= 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 

はそんなにありがとう!

+0

ここで、import文は何ですか?例えば。 より.models import Post –

答えて

0

Interactive Shellにアクセスしても、必要なファイルがすべて自動的にインポートされるわけではありません。デフォルト以外のメソッド、関数、モデルなどを使用する前に、それらをインポートする必要があります。

ご使用の場合は、使用する前にポストモデルをインポートする必要があります。アプリはモデルが中に住んでいる実際のアプリです

from app.models import Post

また、これはあなたのビューのカウント、あなたはそれを使用する前に、モデルをインポートする必要があります。

0

ビューでモデルをインポートしましたか?

from appName.models import Post 

・ホープ、このことができます:あなたのケースで

のようなものでなければなりません!

関連する問題