Как исправить NoReverseMatch в Django? - PullRequest
0 голосов
/ 29 октября 2019

Вот ошибка детализации: NoReverseMatch по адресу / account / login /

Reverse for 'detail' with no arguments not found. 1 pattern(s) tried: ['users/(?P<username>
[^/]+)/$']

Request Method:     POST
Request URL:    http://192.168.109.138:8000/accounts/login/
Django Version:     2.1.7
Exception Type:     NoReverseMatch
Exception Value:    

Reverse for 'detail' with no arguments not found. 1 pattern(s) tried: ['users/(?P<username>
[^/]+)/$']

часть views.py в приложении пользователя:

class UserUpdateView(LoginRequiredMixin, UpdateView):

model = User
fields = ["nickname", "job_title", "introduction", "picture", "location", "personal_url",
          "weibo", "zhihu", "github", "linkedin"]
template_name = "users/user_form.html"

def get_success_url(self):
    return reverse("users:detail", kwargs={"username": self.request.user.username})

def get_object(self, queryset=None):
    return self.request.user

Не могу понять, как работает функция reverse () и для чего используются аргументы args и kwargs

users \ urls.py:

from django.urls import path
from zhuri02.users import views


app_name = "users"
urlpatterns = [
path("update/", views.UserUpdateView.as_view(), name="update"),
path("<username>/", views.UserDetailView.as_view(), name="detail"),
]

the config \ urls.py

urlpatterns = [
    path("users/", include("zhuri02.users.urls", namespace="users")),
    path("accounts/", include("allauth.urls")),
# Your stuff: custom urls includes go here
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Я не уверен, как определить эту ошибку, пожалуйста, помогите, заранее спасибо.

1 Ответ

0 голосов
/ 29 октября 2019

Попробуйте заменить в вашем файле `urls.py, поэтому вместо этого:

path("<username>/", views.UserDetailView.as_view(), name="detail"),

у вас есть это. Обратите внимание на тип slug

path('<slug:username>/', views.UserDetailView.as_view(), name='detail'),

Есть несколько вещей, которые вы можете использовать вместо slug, таких как str, int и т. Д.

Подробнее здесьhttps://docs.djangoproject.com/en/2.2/topics/http/urls/#path-converters

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...