Я пытался создать функцию отслеживания для своего сайта, однако я постоянно зацикливаюсь на ошибках. Вот модель UserProfileInfo
slug = models.SlugField(unique=True,allow_unicode=True)
# ... other fields
def get_absolute_url(self):
kwargs = {
'slug':self.user.username,
}
return reverse('mainapp:view_profile_with_pk',kwargs=kwargs)
# return reverse('mainapp:post_list')
def save(self, *args, **kwargs):
self.slug = slugify(self.user.username)
super().save(*args, **kwargs)
Вот мой взгляд
class AddFriendRedirect(RedirectView):
def get_redirect_url(self,*args,**kwargs):
slug = self.kwargs.get("slug")
obj = get_object_or_404(UserProfileInfo,slug=slug)
# user_profile = User.objects.get(username=username)
url_ = obj.get_absolute_url()
user = self.request.user
if user.is_authenticated:
if user in obj.friends.all():
obj.friends.remove(user)
else:
obj.friends.add(user)
return url_
Вот мой urls.py
path('profile/<str:username>/',views.view_profile,name='view_profile_with_pk'), # this one is the profile one
path('profile/<str:slug>/add/',views.AddFriendRedirect.as_view(),name='add_friend'),
И наконец вот мой HTML
<a id="new-post" href="{% url 'mainapp:add_friend' slug=username %}">
<button id="">
Connect
</button>
И вот моя ошибка
NoReverseMatch в / mainapp / profile / don0024 / add /
Обратное для 'view_profile_with_pk' с аргументами ключевого слова '{ 'slug': 'don0024'} 'не найден. Попробован 1 шаблон (ов): ['mainapp / profile / (? P [^ /] +) / $']
И полный возврат
Среда:
Метод запроса: GET URL запроса: http://127.0.0.1: 8000 / mainapp / profile / don0024 / add /
Трассировка:
Файл "C: \ Users \ User.virtualenvs \oples-site-Ho6yLlHE \ lib \ site-packages \ django \ core \ handlers \ exception.py "во внутреннем 34. response = get_response (запрос)
File" C: \ Users \ User.virtualenvs \ Interest-site-Ho6yLlHE \ lib \ site-packages \ django \ core \ handlers \ base.py "в _get_response 115. response = self.process_exception_by_middleware (e, request)
Файл "C: \ Users \ User.virtualenvs \ Interest-site-Ho6yLlHE \ lib \ site-packages \ django \ core \ handlers \ base.py" в _get_response 113. response = wrapped_callback (request, * callback_args , ** callback_kwargs)
Файл "C: \ Users \ User.virtualenvs \ Interest-site-Ho6yLlHE \ lib \ site-packages \ django \ views \ generic \ base.py" в представлении 71. вернуть self.dispatch (запрос, * args, ** kwargs)
Файл "C: \ Users \ User.virtualenvs \ Interest-site-Ho6yLlHE \ lib \ site-packages \ django \ views \ generic \ base.py" в отправке 97. обработчик возврата (request, * args, ** kwargs)
Файл "C: \ Users \ User.virtualenvs \ Interest-site-Ho6yLlHE \ lib \ site-packages \ django \ views \ generic \ base.py "в get 188. url = self.get_redirect_url (* args, ** kwargs)
Файл" C: \ Users \ User \ Interest-site \ Interest \ mainapp \ views.py "в get_redirect_url 227. url_ = obj.get_absolute_url ()
Файл" C: \ Users \ Пользователь \ интересах \ сайта-интересов \ интересы \ mainapp \ models.py "в get_absolute_url 72. вернуть обратно ('mainapp : view_profile_with_pk ', kwargs = kwargs)
Файл "C: \ Users \ User.virtualenvs \oples-site-Ho6yLlHE \ lib \ site-packages \ django \ urls \ base.py" в обратном порядке 90 . return iri_to_uri (resolver._reverse_with_prefix (view, prefix, * args, ** kwargs))
Файл "C: \ Users \ User.virtualenvs \ Interest-site-Ho6yLlHE \ lib \ site-packages \ django \ urls \ resolvers.py "в _reverse_with_prefix 673. повысить NoReverseMatch (msg)
Тип исключения: NoReverseMatch в / mainapp / profile / don0024 / add / Exception Значение: обратное для 'view_profile_with_pk' с аргументами ключевого слова '{' slug ':' don0024 '}' не найдено. Попробован 1 шаблон (ов): ['mainapp / profile / (? P [^ /] +) / $']
Извините, если много кода и ошибок, но любая помощь будет отличной