为基于Django操作的视图创建多个url_路径
我使用的是DRF,我有以下视图集操作视图:为基于Django操作的视图创建多个url_路径,django,django-rest-framework,Django,Django Rest Framework,我使用的是DRF,我有以下视图集操作视图: @action(methods=['get'], detail=False, url_path=r'top-products/(?P<tag>\w*)/(?P<query>\w*)') def top_products(self, request, tag='', query=''): print(f'tag \t {tag}, query \t {query}') filter
@action(methods=['get'], detail=False, url_path=r'top-products/(?P<tag>\w*)/(?P<query>\w*)')
def top_products(self, request, tag='', query=''):
print(f'tag \t {tag}, query \t {query}')
filtered = Product.objects.all() \
.annotate(items_count=Count('products_users')) \
.order_by('-items_count')
if tag:
filtered.filter(tags__name=tag)
if query:
filtered.filter(name__contains=[query.lower()])
topProducts = filtered
paginator = StandardResultsSetPagination()
result_page = paginator.paginate_queryset(topProducts, request)
data = ProductSerializer(result_page, many=True).data
return paginator.get_paginated_response(data)
经过一段时间的搜索,我发现我需要为每个案例创建一个URL模式,但是如何在Django中为一个动作视图创建多个URL路径呢
- tag and query values exist
- one of them exists
- none exist