这是一个初学者的问题...但是到了。
我有一个URL subject_owner?owner_ids = 61,62,63
将这个url转发到附加视图的urls.py条目应该是什么?
我尝试了很少的选择...但是它们都不起作用,并给出错误提示,以下内容将不起作用,但是类似的方法应该可以解决问题。
url(r'^v1/subject_owner/(?P<owner_id>[a-z0-9]+)$',
views.SubjectByOwnerViewSet.as_view({'get': 'list'}))
谢谢您的回答。还有一个问题,主要是关于接线...
我在url_pattern块的urls.py中做了相应的输入...
url(r'^v1/subject_owner/',
views.SubjectByOwnerViewSet.as_view({'get': 'list'}))
并在 init .py中连线以下内容...
from .subject_owner import SubjectByOwnerViewSet
当我通过邮递员测试时,视图仍然没有被拾取。还有其他需要接线的地方吗?
答案 0 :(得分:0)
以上是URL路径的 not 部分,它是query string [wiki]。 Django在request.GET
[Django-doc]中捕获了这一点。您不会在url(..)
或path(..)
中解析它们。您的路径未捕获该部分,因此您的url
仍然像这样:
url(
r'^v1/subject_owner/',
views.SubjectByOwnerViewSet.as_view({'get': 'list'})
)
您可以使用request.GET['owner_id']
在视图中访问它。
例如,在您的SubjectByOwnerViewSet
中:
class SubjectByOwnerViewSet(ViewSet):
def get_queryset(self, *args, **kwargs):
owner_id_list = self.request.GET['owner_id'].split(',')
return super().get_queryset(*args,**kwargs).filter(
owner__in=owner_id_list
)
当然,您也可以通过其他方法来访问它,以上只是一个假设的用例。