即使名称设置正确,也找不到反向 Django
Posted
技术标签:
【中文标题】即使名称设置正确,也找不到反向 Django【英文标题】:Reverse not found even if the name was set correctly Django 【发布时间】:2021-08-29 14:03:28 【问题描述】:我对下面这样的产品有一个看法:
@api_view(['POST'])
@permission_classes([IsAuthenticated])
def LikeView(request, pk):
product = get_object_or_404(Product, id=pk)
product.bumps.add(request.user)
return HttpResponseRedirect(reverse('detailcreate', args=[pk]))
但是当我发送这样的帖子请求时:
http://127.0.0.1:8000/api/like/04a544c1-78a2-4dc7-9b1c-897feb527541
我收到一个错误:Reverse for 'detailcreate' not found. 'detailcreate' is not a valid view function or pattern name.
我的 urls.py 看起来像这样:
from django.urls import path
from .views import LikeView, ProductList, ProductDetail
app_name = 'name'
urlpatterns = [
path('<uuid:pk>', ProductDetail.as_view(), name='detailcreate'),
path('', ProductList.as_view(), name='listcreate'),
path('like/<uuid:pk>', LikeView, name='like_product'),
]
所以我不知道怎么回事,名字是正确设置的。
pk 是uuid
【问题讨论】:
【参考方案1】:如果你使用app_name
,你应该在解析url时指定它:
return HttpResponseRedirect(reverse('name:detailcreate', args=[pk]))
【讨论】:
以上是关于即使名称设置正确,也找不到反向 Django的主要内容,如果未能解决你的问题,请参考以下文章
打字稿错误 TS2304:即使使用 esnext 也找不到名称 AsyncIterator
在 Mac 上安装 Laravel 会抛出 laravel,即使在设置 PATH 后也找不到