Python 名称错误:名称';图书管理员';未定义-Django

Python 名称错误:名称';图书管理员';未定义-Django,python,django,Python,Django,我使用的是Django和Python3.6,我有一个错误:NameError:name'BookAdmin'未定义且 这是我在“商店”应用程序中的代码(models.py) from django.db import models from django.utils import timezone class Book(models.Model): title = models.CharField(max_length=200) author = models.CharFi

我使用的是Django和Python3.6,我有一个错误:NameError:name'BookAdmin'未定义且

这是我在“商店”应用程序中的代码(models.py)

from django.db import models
from django.utils import timezone

class Book(models.Model):
     title = models.CharField(max_length=200)
     author = models.CharField(max_length=200)
     description = models.TextField()   
     publish_date = models.DateField(default=timezone.now)
在admin.py中

from django.contrib import admin

from .models import Book

class BookAdmin(admin.ModelAdmin):
    list_display = ('title', 'author')

    admin.site.register(Book, BookAdmin)
错误是

    File "C:\venv\lib\site-packages\django\__init__.py", line 27, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "C:\venv\lib\site-packages\django\apps\registry.py", line 115, in populate
    app_config.ready()
  File "C:\venv\lib\site-packages\django\contrib\admin\apps.py", line 23, in ready
    self.module.autodiscover()
  File "C:\venv\lib\site-packages\django\contrib\admin\__init__.py", line 26, in autodiscover
    autodiscover_modules('admin', register_to=site)
  File "C:\venv\lib\site-packages\django\utils\module_loading.py", line 50, in autodiscover_modules
    import_module('%s.%s' % (app_config.name, module_to_search))
  File "C:\venv\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 978, in _gcd_import
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load
  File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
  File "C:\venv\bookstore\store\admin.py", line 5, in <module>
    class BookAdmin(admin.ModelAdmin):
  File "C:\venv\bookstore\store\admin.py", line 8, in BookAdmin
    admin.site.register(Book, BookAdmin)
NameError: name 'BookAdmin' is not defined
文件“C:\venv\lib\site packages\django\\uuuu init\uuuuu.py”,第27行,在安装程序中
应用程序。填充(设置。已安装的应用程序)
文件“C:\venv\lib\site packages\django\apps\registry.py”,第115行,在“填充”中
app_config.ready()
文件“C:\venv\lib\site packages\django\contrib\admin\apps.py”,第23行,处于就绪状态
self.module.autodiscover()
文件“C:\venv\lib\site packages\django\contrib\admin\\ uuuuu init\uuuuuu.py”,第26行,在自动发现中
自动发现模块('admin',register\u to=站点)
文件“C:\venv\lib\site packages\django\utils\module\u loading.py”,第50行,位于自动发现\u模块中
导入模块(“%s.%s%”(app\u config.name,模块到搜索))
文件“C:\venv\lib\importlib\\ uuuuu init\uuuuuu.py”,第126行,在导入模块中
return _bootstrap._gcd_import(名称[级别:],包,级别)
文件“”,第978行,在_gcd_import中
文件“”,第961行,在“查找”和“加载”中
文件“”,第950行,在“查找”和“加载”中解锁
文件“”,第655行,已加载
exec_模块中第678行的文件“”
文件“”,第205行,在调用中删除了帧
文件“C:\venv\bookstore\store\admin.py”,第5行,在
类BookAdmin(admin.ModelAdmin):
BookAdmin中第8行的文件“C:\venv\bookstore\store\admin.py”
管理员.站点.注册(Book,BookAdmin)
名称错误:未定义名称“BookAdmin”
在类定义之外注册管理员。不在里面

或者这样做:

@admin.register(Book)
class BookAdmin(admin.ModelAdmin):
    list_display = ('title', 'author')
在类定义之外注册管理员。不在里面

或者这样做:

@admin.register(Book)
class BookAdmin(admin.ModelAdmin):
    list_display = ('title', 'author')

下面的答案对你的案例有效吗?下面的答案对你的案例有效吗?