Я использую allauth с моим Django проектом с самого начала, и у меня не было проблем. В последнее время при попытке очистить некоторый код и улучшить функцию поиска пользователей кажется, что мои изменения ломают страницу учетных записей / входа в систему.
Мне не удалось найти какие-либо исправления в Интернете после 2 дней поиска в Google и поиска в документации и Я надеюсь, что кто-то с немного большим опытом мог бы увидеть, где моя ошибка.
Я сузил причину ошибки до изменения одного URL-адреса в моем приложении пользователя, которое совершенно не связано с Аллахом.
Когда я меняю
urlpatterns = [
....
path('<int:pk>/<str:slug>/', ProfilePageView.as_view(), name='profile'),
path('search/', SearchResultsView.as_view(), name='search'),
]
на
urlpatterns = [
...
path('<str:slug>/', ProfilePageView.as_view(), name='profile'),
path('search/', SearchResultsView.as_view(), name='search'),
]
, когда я получаю ошибку. Внутри моего терминала я вижу Not Found: /accounts/login/
, однако в браузере я вижу No user found matching the query
, что смущает меня, потому что я не уверен, откуда приходит этот запрос.
Основное изменение в моем коде, который я реализую, заключается в моих users.models
def get_absolute_url(self):
kwargs = {
'pk' : self.id,
'slug' : self.slug,
}
return reverse('users:profile', kwargs=kwargs['slug'])
, который также дает мне TypeError: _reverse_with_prefix() argument after ** must be a mapping, not str
, но это еще одна проблема (не стесняйтесь, чтобы предоставить понимание об этом тоже, если вы знаете).
Я подумал, может быть, это потому, что мой поиск. html был в каталоге шаблонов учетных записей, поэтому я попытался переместить его оттуда, но это не дало никаких других результатов.
Я не совсем понимаю, что это за проблема, и почему изменение несвязанного шаблона / URL нарушает мои страницы Аллаута? Похоже, что это все мои аккаунты / страницы, но также и страница поиска, которая больше не работает, хотя мой дом и страницы о нем работают. Благодарим вас за понимание этой проблемы и, пожалуйста, дайте мне знать, если вам нужна дополнительная информация.