获取url Django中的参数值

2024-05-20 23:36:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Django新手,我想从URL接收一个值,然后在过滤器中使用它,但我遇到了这个问题

其中value是view.py中的模型字段

class ModelNumber(generics.ListAPIView):
    permission_classes = [
        IsAuthenticated,
    ]
    serializer_class = ModelSerializer 

    def get_queryset(self):
        queryset = Model.objects.all()
        value = self.request.query_params.get('value')
        return Model.objects.filter(value = value)

在URL.py

path('model_number/(?P<receipt_ballot>\w+)$', views.ModelNumber.as_view()),

和Model.py

class Model(models.Model):                                                              
    value = models.CharField("Number Value", max_length=12, null=True)

在url中

http://192.168.0.3:8080/model_number/001-000002/

错误:

找不到页面(404)

当前路径/model_number/001-000002/,与这些路径中的任何一个都不匹配


Tags: pyself路径viewurlnumbergetmodel
2条回答

您可以使用url中定义的kwargs键来获取该键的值。比如:

    def get_queryset(self):
        # What you wanted
        value_of_url_parameter = self.kwargs.get('receipt_ballot')

        queryset = Model.objects.all()
        value = self.request.query_params.get('value')
        return Model.objects.filter(value = value)

您需要修改url以捕获参数

http://192.168.0.3:8080?model_number=001-000002/

class ModelNumber(generics.ListAPIView):
    permission_classes = [
        IsAuthenticated,
    ]
    serializer_class = ModelSerializer 

    def get_queryset(self):
        queryset = Model.objects.all()
        value = self.request.query_params.get('value')
        return Model.objects.filter(value = value)

请注意url中的问号

相关问题 更多 >