管理类未在 django 中定义
Posted
技术标签:
【中文标题】管理类未在 django 中定义【英文标题】:Admin class not defined in django 【发布时间】:2018-07-06 02:01:42 【问题描述】:我尝试将我的模型添加到管理员中。 但是在我为 model.admin 创建类时运行错误 我不知道为什么我的班级阅读没有定义。
我使用 python 3.6 和 Django 2.0
from django.contrib import admin
from .models import Post
# Register your models here.
class PostAdmin(admin.ModelAdmin):
list_display = ('title', 'slug', 'author', 'publish', 'status')
list_filter = ('status', 'created', 'publish', 'author')
search_fields = ('title', 'body')
raw_id_fields = ('author')
date_hierarchy = ('publish')
ordering = ['status', 'publish']
admin.site.register(Post, PostAdmin)
这里是我的调试错误:
"C:\Program Files\JetBrains\PyCharm 2017.3\bin\runnerw.exe" C:\Users\FIANUAENA\PycharmProjects\mysite\venv\Scripts\python.exe C:/Users/FIANUAENA/PycharmProjects/mysite/manage.py 运行服务器 8000 .wrapper 在 0x05E1EE88 处启动的线程中未处理的异常> 回溯(最近一次通话最后): 文件“C:\Users\FIANUAENA\PycharmProjects\mysite\venv\lib\site-packages\django\utils\autoreload.py”, 第 225 行,在包装器中 fn(*args, **kwargs) 文件“C:\Users\FIANUAENA\PycharmProjects\mysite\venv\lib\site-packages\django\core\management\commands\runserver.py”, 第 113 行,inner_run autoreload.raise_last_exception() 文件“C:\Users\FIANUAENA\PycharmProjects\mysite\venv\lib\site-packages\django\utils\autoreload.py”, 第 248 行,在 raise_last_exception 中 引发_异常[1] 文件“C:\Users\FIANUAENA\PycharmProjects\mysite\venv\lib\site-packages\django\core\management__init__.py”, 第 327 行,执行中 autoreload.check_errors(django.setup)() 文件“C:\Users\FIANUAENA\PycharmProjects\mysite\venv\lib\site-packages\django\utils\autoreload.py”, 第 225 行,在包装器中 fn(*args, **kwargs) 文件“C:\Users\FIANUAENA\PycharmProjects\mysite\venv\lib\site-packages\django__init__.py”, 第 24 行,在设置中 apps.populate(settings.INSTALLED_APPS) 文件“C:\Users\FIANUAENA\PycharmProjects\mysite\venv\lib\site-packages\django\apps\registry.py”, 第 120 行,在填充 app_config.ready() 文件“C:\Users\FIANUAENA\PycharmProjects\mysite\venv\lib\site-packages\django\contrib\admin\apps.py”, 第 23 行,准备就绪 self.module.autodiscover() 文件“C:\Users\FIANUAENA\PycharmProjects\mysite\venv\lib\site-packages\django\contrib\admin__init__.py”, 第 26 行,在自动发现中 autodiscover_modules('admin', register_to=site) 文件“C:\Users\FIANUAENA\PycharmProjects\mysite\venv\lib\site-packages\django\utils\module_loading.py”, 第 47 行,在 autodiscover_modules 中 import_module('%s.%s' % (app_config.name, module_to_search)) 文件“C:\Users\FIANUAENA\PycharmProjects\mysite\venv\lib\importlib__init__.py”, 第 126 行,在 import_module 中 return _bootstrap._gcd_import(name[level:], package, level) _gcd_import 中的文件“”,第 994 行 _find_and_load 中的文件“”,第 971 行 文件“”,第 955 行,在 _find_and_load_unlocked _load_unlocked 中的文件“”,第 665 行 文件“”,第 678 行,在 exec_module 中 _call_with_frames_removed 中的文件“”,第 219 行 文件“C:\Users\FIANUAENA\PycharmProjects\mysite\blog\admin.py”,第 8 行,在 类 PostAdmin(admin.ModelAdmin): PostAdmin 中的文件“C:\Users\FIANUAENA\PycharmProjects\mysite\blog\admin.py”,第 16 行 admin.site.register(发布,PostAdmin) NameError: 未定义名称“PostAdmin”
谢谢你的帮助
【问题讨论】:
【参考方案1】:取消您的管理员调用:
class PostAdmin(admin.ModelAdmin):
list_display = ('title', 'slug', 'author', 'publish', 'status')
list_filter = ('status', 'created', 'publish', 'author')
search_fields = ('title', 'body')
raw_id_fields = ('author')
date_hierarchy = ('publish')
ordering = ['status', 'publish']
admin.site.register(Post, PostAdmin)
【讨论】:
【参考方案2】:谢谢,我的问题已经解决了。 只需更改我的代码:
来自:
from .models import Post
到:
from blog.models import *
【讨论】:
这些导入中的任何一个都应该工作。正如 Stolson 所说,问题在于缩进。 除了这是错误的答案之外,导入 * 不是好的做法以上是关于管理类未在 django 中定义的主要内容,如果未能解决你的问题,请参考以下文章
Tailwind css 类未在 Storybook 构建中显示