Передача строковых параметров не работает в 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),

Здесь вы можете найти соответствующую информацию.

Примечание: я сам запустил первый вариант и он работает как надо

Вернуться на верх