首页 > 解决方案 > Django 为 rest APIView 捕获的可选 URL 值

问题描述

对于使用 django_rest_framework 的以下 Django 代码:

class PollMessageView(generics.ListAPIView):
    serializer_class = MessageSerializer

    lookup_url_kwarg = 'count'

    def get_queryset(self):
        count = self.kwargs.get(self.lookup_url_kwarg)

        queryset = Message.objects.all()[:count]
        return queryset

urlpatterns = [
    path('poll_message/<int:count>', PollMessageView.as_view(), name="poll_message"),
]

如何count在 URL 模式中使参数可选?例如,如果我访问时/poll_message/没有计数,它仍然会调用 PollMessageView(count如果它丢失,我可以设置一个默认数字)?

标签: djangodjango-rest-framework

解决方案


创建一个新路径,

urlpatterns = [
    path('poll_message/', PollMessageView.as_view(), name="poll_message-wo-count"),
    path('poll_message/<int:count>', PollMessageView.as_view(), name="poll_message"),
    
]

推荐阅读