繁体   English   中英

在Django rest框架中获取URL其余参数的正确方法

[英]correct way to obtain the rest of the parameters of URL in Django rest framework

大家好,我正在使用Django rest框架创建API

在我的URLs.py文件中,我有这个

  url(r'^cpuProjects/$', cpuProjectsViewSet.as_view({'get': 'list'})),
  url(r'^cpuProjects/(?P<project_name>[a-zA-Z0-9]+)$', cpuProjectsViewSet.as_view({'get': 'retrieve'})),

这个工作完美,我有这个网址

http://127.0.0.1:8000/cpuProjects/
http://127.0.0.1:8000/cpuProjects/ad

在我的检索函数中,我有这个来获取参数

  def retrieve(self, request, project_name=None):
    try:
      opc = self.kwargs.get(self.lookup_url_kwarg)
      print(opc)
      ...

现在,我将其添加到我的URLs.py文件中

url(r'^cpuProjects/(?P<project_name>[a-zA-Z0-9]+/[a-zA-Z0-9]+)$', cpuProjectsViewSet.as_view({'get': 'retrieve'})),


http://127.0.0.1:8000/cpuProjects/name_project/whatever_string_here

在这种情况下,我的print(opc)返回此ad/pending

这是在Django rest框架中获取URL其余参数的正确方法吗?

您将URL的整个路径包装在同一个名为group的正则表达式中。 您可以将尾随的部分放在不同的组中来代替:

url(r'^cpuProjects/(?P<project_name>[a-zA-Z0-9]+)/(?P<status>[a-zA-Z0-9]+)$', ...),

在您看来:

def retrieve(self, request):
    try:
        opc = self.kwargs.get(self.lookup_url_kwarg)
        status = self.kwargs.get('status')
        ...

暂无
暂无

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

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