繁体   English   中英

获取 url Django 中的参数值

[英]get parameter value in url Django

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

其中 value 是 view.py 中 model 的字段

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)

在 urls.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/ 与其中任何一个都不匹配。

您可以使用在 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 中的问号

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM