【发布时间】:2017-08-17 09:44:06
【问题描述】:
我正在使用 Django 和 Python 3.6 我遇到了这个错误:NameError: name 'BookAdmin' is not defined and
这是我在“商店”应用程序中的代码 (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
【问题讨论】:
-
以下答案对您的情况有效吗?