2017-03-24 3 views
0

Ich verwende Django und Python 3.6 Ich hatte diesen Fehler: Nameerror: name 'BookAdmin' ist nicht definiert undNameerror: name 'BookAdmin' ist nicht definiert - Django

dies mein Code (models.py) in App "Laden"

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) 

und in admin.py

from django.contrib import admin 

from .models import Book 

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

    admin.site.register(Book, BookAdmin) 

und der Fehler

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 
+0

Hat die unten Antwort arbeitete für Ihren Fall? –

Antwort

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

admin.site.register(Book, BookAdmin) 

außerhalb der Klassendefinition Ihrem Admin registrieren. Nicht drin!

Oder dies:

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