【问题标题】:Django Models not working: module 'django.contrib.admin' has no attribute 'Modeladmin'Django 模型不工作:模块 'django.contrib.admin' 没有属性 'Modeladmin'
【发布时间】:2019-11-16 20:33:41
【问题描述】:

我正在根据 youtube 教程制作电子商务网站,但我遇到了一个非常困扰我的错误。

我试过谷歌,但没有用。然后我尝试弄乱 Django,但结果变得更糟,所以我改回来了。

这是 admin.py 的代码:

from django.contrib import admin

# Register your models here.
from .models import profiles

class profileadmin(admin.Modeladmin):
    class Meta:
        model = profiles

admin.site.register(profiles, profileadmin)

完整的错误信息是这样的:

Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x03ED28A0>
Traceback (most recent call last):
  File "C:\Users\roche\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\utils\autoreload.py", line 225, in wrapper
    fn(*args, **kwargs)
  File "C:\Users\roche\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\management\commands\runserver.py", line 109, in inner_run
    autoreload.raise_last_exception()
  File "C:\Users\roche\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\utils\autoreload.py", line 248, in raise_last_exception
    raise _exception[1]
  File "C:\Users\roche\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\management\__init__.py", line 337, in execute
    autoreload.check_errors(django.setup)()
  File "C:\Users\roche\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\utils\autoreload.py", line 225, in wrapper
    fn(*args, **kwargs)
  File "C:\Users\roche\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "C:\Users\roche\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\apps\registry.py", line 120, in populate
    app_config.ready()
  File "C:\Users\roche\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\contrib\admin\apps.py", line 24, in ready
    self.module.autodiscover()
  File "C:\Users\roche\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\contrib\admin\__init__.py", line 26, in autodiscover
    autodiscover_modules('admin', register_to=site)
  File "C:\Users\roche\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\utils\module_loading.py", line 47, in autodiscover_modules
    import_module('%s.%s' % (app_config.name, module_to_search))
  File "C:\Users\roche\AppData\Local\Programs\Python\Python37-32\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\Users\roche\WebApp\WebApp\profiles\admin.py", line 6, in <module>
    class profileadmin(admin.Modeladmin):
AttributeError: module 'django.contrib.admin' has no attribute 'Modeladmin'

【问题讨论】:

  • 应该是admin.ModelAdmin 而不是admin.Modeladmin

标签: python django python-3.x django-admin


【解决方案1】:

它是 ModelAdmin 而不是 Modeladmindocs

【讨论】:

  • 我刚刚看了教程,发现你是对的。无论如何,谢谢!
【解决方案2】:

尝试像这样更新您的代码:

from django.contrib import 
admin.ModelAdmin as admin 

然后

class profileadmin(admin):

你可以在这里找到更多关于 django 导入的信息https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.readonly_fields

【讨论】:

  • 如果我的任何其他帖子有帮助,请务必点赞并回复。
  • 我把正确答案标记回来了,我只是先看了@Sushanth S. B 的文档,和你的一样。
  • 正如 Sushanth S.B 所说:这是 ModelAdmin 而不是 Modeladmin。文档:docs.djangoproject.com/en/2.2/ref/contrib/admin/…
【解决方案3】:
from django.contrib import admin

# Register your models here.
from .models import profiles

class profileadmin(admin.Modeladmin): #the error is in this line
    class Meta:
        model = profiles

admin.site.register(profiles, profileadmin)

The correct format suppose to be 
class profileadmin(admin.ModelAdmin):

【讨论】:

    猜你喜欢
    • 2016-01-10
    • 2019-07-20
    • 1970-01-01
    • 1970-01-01
    • 2010-10-02
    • 2021-03-12
    • 2020-02-16
    • 2016-03-06
    相关资源
    最近更新 更多