Передача строковых параметров не работает в dajango
view.py
когда я тестирую свой api с помощью post man, postman показывает, что эти URL не существуют (404 not found) любое решение, пожалуйста
.
url postman:localhost:8000/photoByCategory/nature/
@api_view(['GET'])
@permission_classes((permissions.IsAuthenticated,))
def photo_by_categorie(request, category=False):
if request.method == 'GET':
if category:
photo_by_cat = Photo.objects.filter(category=category)
serializer = PhotoSerializer(photo_by_cat, many=True)
return Response(serializer.data, status=status.HTTP_200_OK)
urls.py
re_path(r'photoByCategory/(?:(?P<category>\d+)/)?$', views.photo_by_categorie, name='photo_by_categorie'),
Ну, я полагаю, что проблема в вашем regex. Попробуйте следующее
from django.urls import path, re_path
# Match string after drinks/ prefix
path('photoByCategory/<str:category>/',views.photo_by_categorie),
# Match one or more characters (non-digit regular expression) after drinks/ prefix
re_path(r'^photoByCategory/(?P<category>\D+)/',views.photo_by_categorie),
Здесь вы можете найти соответствующую информацию.
Примечание: я сам запустил первый вариант и он работает как надо