我在django的实用程序rest-api, 我没有成功通过ajax发送“GET”参数:
在django的rest-api应用程序中,我有urls.py:
urlpatterns = patterns('',
url(r'^titles/(?P<author_id>\d+)/$', login_required(views.TitlesViewSet.as_view()) ),
)
在views.py中我写道:
class TitlesViewSetViewSet(ListCreateAPIView):
serializer_class = TitleSerializer
def get_queryset(self):
aouther_id = self.request.GET.get('aouther_id', None)
return Title.objects.filter(auther = auther_id)
当代码插入上面的get_queryset时,它无法识别任何GET参数,并且aouther_id设置为None。
有人知道我应该做什么吗?
答案 0 :(得分:2)
首先,您在网址中输入了一个拼写错误,您正在使用author_id
,并且您正在尝试获取aouther_id
密钥。其次,您试图从查询参数中获取值,但实际上并未使用它们。第三,您正在使用命名的url参数,这些参数存储在基于类的视图的kwargs
属性中。
您可以通过以下方式访问它们:
class TitlesViewSetViewSet(ListCreateAPIView):
serializer_class = TitleSerializer
def get_queryset(self):
# try printing self.kwargs here, to see the contents
return Title.objects.filter(author_id=self.kwargs.get('author_id'))
答案 1 :(得分:1)
你应该将auther_id设置的一行替换为:
auther_id=self.kwargs['auther_id']
更新: 我现在看到jbub回答...谢谢你!我刚发现它......