#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]))