Реверс не найден, даже если имя было задано правильно Django

#django #django-rest-framework #view

Вопрос:

У меня есть представление о продукте, который нравится, как это показано ниже:

 @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'),
]
 

так что я не знаю, в чем дело, имя задано правильно.

пк-это uuid

Ответ №1:

Если вы используете app_name , вы должны указать его при разрешении URL-адреса:

 return HttpResponseRedirect(reverse('name:detailcreate', args=[pk]))