关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。
想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。
去年关闭。
Improve this question
AttributeError: 'AdminSite' 对象没有属性 'Register'
当我进行迁移并打开我的管理部分以添加虚拟信息和图像时,我收到错误消息。
admin.site.Register(Bet, BetAdmin)
到目前为止,我所做的是删除并按回车键,看看它是否是类上的缩进错误。
我还安装了 pylint 以根据建议的答案查看有关错误的更多详细信息。
Class has no objects member
pip install pylint-django
然后我添加到我的settings.json
{
"terminal.integrated.shell.windows": "C:\\WINDOWS\\Sysnative\\WindowsPowerShell\\v1.0\\powershell.exe",
"workbench.colorTheme": "PowerShell ISE",
"python.pythonPath": "C:\\Users\\taylo\\AppData\\Local\\Programs\\Python\\Python38-32\\python.exe",
"json.schemas": [
],
"python.linting.pylintArgs": [
"--load-plugins=pylint_django"
],
"[python]": {
}
}
但它并没有解决任何与问题相关的问题。
仅供引用:我在堆栈上进行了大量搜索和查看,但解决方案看到了拼写错误的位置,例如拼写错误的单词,例如 reqister 而不是 register 拼写错误,并且没有拼写错误。
完整的终端错误
(venv) PS C:\Users\taylo\django\pybet_project> python manage.py makemigrations
Traceback (most recent call last):
File "manage.py", line 21, in <module>
main()
File "manage.py", line 17, in main
execute_from_command_line(sys.argv)
File "C:\Users\taylo\django\pybet_project\venv\lib\site-packages\django\core\management\__init__.py", line 401, in execute_from_command_line
utility.execute()
File "C:\Users\taylo\django\pybet_project\venv\lib\site-packages\django\core\management\__init__.py", line 377, in execute
django.setup()
File "C:\Users\taylo\django\pybet_project\venv\lib\site-packages\django\__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "C:\Users\taylo\django\pybet_project\venv\lib\site-packages\django\apps\registry.py", line 122, in populate
app_config.ready()
File "C:\Users\taylo\django\pybet_project\venv\lib\site-packages\django\contrib\admin\apps.py", line 24, in ready
self.module.autodiscover()
File "C:\Users\taylo\django\pybet_project\venv\lib\site-packages\django\contrib\admin\__init__.py", line 26, in autodiscover
autodiscover_modules('admin', register_to=site)
File "C:\Users\taylo\django\pybet_project\venv\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\taylo\AppData\Local\Programs\Python\Python38-32\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 783, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "C:\Users\taylo\django\pybet_project\bets\admin.py", line 8, in <module>
admin.site.Register(Bet, BetAdmin)
File "C:\Users\taylo\django\pybet_project\venv\lib\site-packages\django\utils\functional.py", line 225, in inner
return func(self._wrapped, *args)
AttributeError: 'AdminSite' object has no attribute 'Register'
(venv) PS C:\Users\taylo\django\pybet_project>
管理文件
from django.contrib import admin
from .models import Bet
class BetAdmin(admin.ModelAdmin):
list_display = {'home_team', 'away_team', 'home_team_odds', 'draw_odds', 'away_team_odds'}
admin.site.Register(Bet, BetAdmin)
模型.py
from django.db import models
class Bet(models.Model):
home_team = models.CharField(max_length=255)
home_team_logo = models.ImageField(upload_to='logos')
away_team = models.CharField(max_length=255)
away_team_logo = models.ImageField(upload_to='logos')
home_team_odds = models.DecimalField(max_digits=3, decimal_places=2)
draw_odds = models.DecimalField(max_digits=3, decimal_places=2)
away_team_odds = models.DecimalField(max_digits=3, decimal_places=2)
网址.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('new', views.new, name='new')
]
View .py
from django.shortcuts import render
from .models import Bet
def index(request):
bets = Bet.objects.all()
return render(request, 'bets/index.html', {'bets: bets'})
最佳答案
admin.site.register()
- R 必须是小写
关于 Django 3 : AttributeError: 'AdminSite' object has no attribute 'Register' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61663405/