Почему мой обратный поиск URL-адреса с помощью kwargs не работает в API действий набора представлений?

#django #django-rest-framework

Вопрос:

Вот мой набор представлений с действием:

 class RewardsQueryViewSet(UUIDModelViewSet):  queryset = RewardsQuery.objects.all() serializer_class = RewardsQuerySerializer ordering_fields = ("-created_at",) http_method_names = [  "post",  "get", ]  def create(self, request, **kwargs):  serializer = RewardsQuerySerializer(data=request.data)  serializer.is_valid(raise_exception=True)  transaction = serializer.save()  return Response(transaction)  @action(  detail=True,  methods=("get",),  url_path="earned-rewards", ) def earned_rewards(self, request, *arg, **kwargs):  session = RewardsQuery.objects.get(uuid=self.kwargs["uuid"])  transactions = Rewards.objects.filter(profile=session.profile)  return Response({"results": transactions})  

в urlconf я вижу эту запись:

 api/lt;versiongt;/ ^applications/(?Plt;client_idgt;[^/] )/rewards-queries/(?Plt;uuidgt;[^/.] )/earned-rewards/$ [name='rewards-query-earned-rewards']  

но когда я пытаюсь выполнить обратный поиск, это не удается. Я пробовал и то, и другое:

 drf_reverse('rewards-query-earned-rewards', kwargs={'client_id': instance.application.client_id, 'uuid': str(instance.uuid)})  reverse('rewards-query-earned-rewards', kwargs={'client_id': instance.application.client_id, 'uuid': str(instance.uuid)})  

ошибка отладки django:

 Exception Type: NoReverseMatch Exception Value:  Reverse for 'rewards-query-earned-rewards' with keyword arguments '{'client_id': 'FVQI5U57tfCyDV99YjhF3ExdlpiObg5JASvy81Mu', 'uuid': '2057de0f-f5b4-4af4-aa99-ac3681cc6984'}' not found. 2 pattern(s) tried: ['api/(?Plt;versiongt;[^/] )/applications/(?Plt;client_idgt;[^/] )/rewards-queries/(?Plt;uuidgt;[^/.] )/earned-rewards\.(?Plt;formatgt;[a-z0-9] )/?

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


Комментарии:

1. Последний шаблон в ошибке отладки django, по-видимому, является правильным шаблоном, поэтому я не уверен, почему он не работает

2. Может быть, вам не хватает version кварга.

, 'api/(?Plt;versiongt;[^/] )/applications/(?Plt;client_idgt;[^/] )/rewards-queries/(?Plt;uuidgt;[^/.] )/earned-rewards/Почему не удается выполнить обратный поиск?

Комментарии:

1. Последний шаблон в ошибке отладки django, по-видимому, является правильным шаблоном, поэтому я не уверен, почему он не работает

2. Может быть, вам не хватает version кварга.

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

Комментарии:

1. Последний шаблон в ошибке отладки django, по-видимому, является правильным шаблоном, поэтому я не уверен, почему он не работает

2. Может быть, вам не хватает version кварга.