Django:如果我在 admin.py 中有正确的导入,为什么我在 shell 中出现 NameError
Django: Why im getting NameError in shell if I have correct import in admin.py
我真的不明白为什么我在 shell 中尝试 运行 Post.objects.all() 时得到 NameError。(通过使用 django_extensions)
我进行了迁移,我在数据库上看到 posts_post table(工作正常),我可以在本地服务器上的 运行ning 应用程序中执行 CRUD 操作。
下面是我的代码和错误信息。
发布应用程序
admin.py:
from django.contrib import admin
from .models import Post
admin.site.register(Post)
settings.py:
INSTALLED_APPS = [
...
'django_extensions',
'posts.apps.PostsConfig'
]
shell
Traceback (most recent call last)
Input In [1], in <cell line: 1>()
----> 1 Post.objects.all()
NameError: name 'Post' is not defined
首先要导入模型,所以写成如下:
from some_app_name.models import Post
Post.objects.all()
并且不要写 from .models import Post
因为它需要 appname。
示例:如果应用程序名称是 posts
那么您应该写:
from posts.models import Post
Post.objects.all()
我真的不明白为什么我在 shell 中尝试 运行 Post.objects.all() 时得到 NameError。(通过使用 django_extensions)
我进行了迁移,我在数据库上看到 posts_post table(工作正常),我可以在本地服务器上的 运行ning 应用程序中执行 CRUD 操作。
下面是我的代码和错误信息。
发布应用程序
admin.py:
from django.contrib import admin
from .models import Post
admin.site.register(Post)
settings.py:
INSTALLED_APPS = [
...
'django_extensions',
'posts.apps.PostsConfig'
]
shell
Traceback (most recent call last)
Input In [1], in <cell line: 1>()
----> 1 Post.objects.all()
NameError: name 'Post' is not defined
首先要导入模型,所以写成如下:
from some_app_name.models import Post
Post.objects.all()
并且不要写 因为它需要 appname。from .models import Post
示例:如果应用程序名称是 posts
那么您应该写:
from posts.models import Post
Post.objects.all()