首页 > 解决方案 > 使用 Django REST 框架,如何解析 RESTful 字符串参数?

问题描述

我正在使用 Python 3.9

Django==3.1.4
djangorestframework==3.12.2

我想将一个安静的参数(“作者”字符串)传递给我的 GET 方法。在我的 urls.py 文件中,我有

urlpatterns = [
    ...
    path('user/<str:author>', views.UserView.as_view()),

然后在我的 UserView 类(在我的 views.py 文件中定义)中,我有

class UserView(APIView):
    def get(self, request):
        ...
        author = self.kwargs.get('author', None)

但是当我执行

GET http://localhost:8000/user/myauthor

我得到错误

TypeError: get() got an unexpected keyword argument 'author'

我还需要做什么才能正确访问 URL 中的 RESTful 参数?

标签: djangodjango-rest-frameworkparametersrestful-url

解决方案


get()方法也应该接受 url 参数,无论你如何命名参数,你都可以使用*args**kwargs语法来确保它工作:

class UserView(APIView):
    def get(self, request, *args, **kwargs):
        ...
        author = self.kwargs.get('author', None)

推荐阅读