我正在创建一个Django网站,并最近使用allauth包添加了权限/搜索功能。当我尝试通过docker运行网站时,我收到以下错误消息:
“/usr/local/lib/python3.9/site-packages/allauth/account/signals.py”路径下的第5行代码"user_logged_in = Signal(providing_args=["request", "user"])" 报错 "TypeError: init() got an unexpected keyword argument 'providing_args'”。
造成这个错误的原因是什么?通常类型错误是由于不正确的models.py文件引起的,但由于它是外部包的一部分,所以我无法访问该文件。
Urls.py
造成这个错误的原因是什么?通常类型错误是由于不正确的models.py文件引起的,但由于它是外部包的一部分,所以我无法访问该文件。
Urls.py
urlpatterns = [
path('admin/', admin.site.urls),
path('accounts/', include('allauth.urls')),
path('accounts/', include('accounts.urls')),
path('', include('climate.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
if settings.DEBUG:
import debug_toolbar
urlpatterns = [
path('__debug__/', include(debug_toolbar.urls)),
] + urlpatterns
Models.py
class Country(models.Model):
id = models.UUIDField(
primary_key= True,
db_index = True,
default=uuid.uuid4,
editable= False
)
name = models.CharField(max_length=50)
population = models.IntegerField(default=1)
emissions = models.FloatField(default=1)
reason = models.CharField(default="", max_length=100)
flags = models.ImageField(upload_to='images/', default="")
page = models.URLField(max_length=300, default="")
def save(self, *args, **kwargs):
super(Country, self).save(*args, **kwargs)
class Meta:
verbose_name_plural = 'countries'
indexes = [
models.Index(fields=['id'], name='id_index')
]
permissions = {
("special_status", "Can read all countries")
}
def __str__(self):
return self.name
def flag(self):
return u'<img src="%s" />' % (self.flags.url)
def get_absolute_url(self):
return reverse('country_detail', args =[str(self.id)])
flag.short_description = 'Flag'
我的settings.py处理allauth相关内容。
AUTH_USER_MODEL = 'accounts.CustomUser'
LOGIN_REDIRECT_URL = 'climate:home'
ACCOUNT_LOGOUT_REDIRECT = 'climate:home'
ACCOUNT_SESSION_REMEMBER = True
ACCOUNT_SIGNUP_PASSWORD_ENTER_TWICE = False
ACCOUNT_USERNAME_REQUIRED = False
ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_UNIQUE_EMAIL = True
完整的回溯信息:
Traceback (most recent call last):
File "/usr/local/lib/python3.9/threading.py", line 954, in _bootstrap_inner
self.run()
File "/usr/local/lib/python3.9/threading.py", line 892, in run
self._target(*self._args, **self._kwargs)
File "/usr/local/lib/python3.9/site-packages/django/utils/autoreload.py", line 64, in wrapper
fn(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/django/core/management/commands/runserver.py", line 115, in inner_run
autoreload.raise_last_exception()
File "/usr/local/lib/python3.9/site-packages/django/utils/autoreload.py", line 87, in raise_last_exception
raise _exception[1]
File "/usr/local/lib/python3.9/site-packages/django/core/management/__init__.py", line 381, in execute
autoreload.check_errors(django.setup)()
File "/usr/local/lib/python3.9/site-packages/django/utils/autoreload.py", line 64, in wrapper
fn(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/usr/local/lib/python3.9/site-packages/django/apps/registry.py", line 114, in populate
app_config.import_models()
File "/usr/local/lib/python3.9/site-packages/django/apps/config.py", line 300, in import_models
self.models_module = import_module(models_module_name)
File "/usr/local/lib/python3.9/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 790, in exec_module
File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
File "/usr/local/lib/python3.9/site-packages/allauth/account/models.py", line 12, in <module>
from . import app_settings, signals
File "/usr/local/lib/python3.9/site-packages/allauth/account/signals.py", line 5, in <module>
user_logged_in = Signal(providing_args=["request", "user"])
TypeError: __init__() got an unexpected keyword argument 'providing_args'