[英]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.