未找到“用户创建”的 DRF 反向
Posted
技术标签:
【中文标题】未找到“用户创建”的 DRF 反向【英文标题】:DRF reverse for 'user-create' not found 【发布时间】:2020-07-28 10:04:00 【问题描述】:在 app/urls.py 中有一个名为 MyUserCreate 的视图
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'api/users^$', views.MyUserCreate.as_view(), name='user-create'),
]
这是我的根 urls.py
from django.contrib import admin
from django.urls import include, path, re_path
from rest_framework import permissions
from drf_yasg.views import get_schema_view
from drf_yasg import openapi
schema_view = get_schema_view(
openapi.Info(
title="Snippets API",
default_version='v1',
description="Test description",
terms_of_service="https://www.google.com/policies/terms/",
contact=openapi.Contact(email="contact@snippets.local"),
license=openapi.License(name="BSD License"),
),
public=True,
permission_classes=(permissions.AllowAny,),
)
urlpatterns = [
re_path(r'^swagger(?P<format>\.json|\.yaml)$', schema_view.without_ui(cache_timeout=0), name='schema-json'),
re_path(r'^swagger/$', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
re_path(r'^redoc/$', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
path('test/', include('test_app.urls')),
path('admin/', admin.site.urls),
#path('user/', include('user.urls'))
]
在 app/tests.py 中
self.create_url = reverse('user-create')
跑步
python manage.py test
给出这个错误
Traceback(最近一次调用最后一次):文件 "C:\Users\tiago\Desktop\letsgo\COVID19-be\django_server\user\tests.py", 第 13 行,在设置中 self.create_url = reverse('user-create') 文件 "C:\Users\tiago\Desktop\letsgo\venv\lib\site-packages\django\urls\base.py", 第 87 行,反向 return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)) 文件 "C:\Users\tiago\Desktop\letsgo\venv\lib\site-packages\django\urls\resolvers.py", 第 677 行,在 _reverse_with_prefix raise NoReverseMatch(msg) django.urls.exceptions.NoReverseMatch:找不到“用户创建”的反向。 “用户创建”不是有效的视图 函数或模式名称。
我能做些什么来解决它?
【问题讨论】:
你能显示你的根 urls.py 吗? 当然,已经有@ArakkalAbu 好像你已经注释掉了#path('user/', include('user.urls'))
这行
【参考方案1】:
您没有在 根 URL 配置中包含应用 URL
urlpatterns = [
# other URLs
path('user/', include('user.urls'))
]
【讨论】:
以上是关于未找到“用户创建”的 DRF 反向的主要内容,如果未能解决你的问题,请参考以下文章
未找到“用户配置文件”的反向。 'userprofile' 不是有效的视图函数或模式名称
Django - DRF 删除/检索/补丁返回 404 详细信息:“未找到”
未找到带有参数 '('',)' 的 'todo-user' 的反向操作。已尝试 1 种模式