【发布时间】:2018-09-07 01:33:28
【问题描述】:
我正在使用 Django 休息框架。我正在通过邮递员测试我的方法。
我有一个名为 ActionView 的视图,我正在使用 mixin:
class ActionView(
mixins.CreateModelMixin,
mixins.RetrieveModelMixin,
generics.GenericAPIView):
queryset = Action.objects.all()
serializer_class = ActionSerializer
def post(self, request, *args, **kwargs):
return self.create(request, *args, **kwargs)
def get(self, request,*args, **kwargs):
return self.retrieve(request, *args, **kwargs)
网址是:
urlpatterns = [
path(r'action/', views.ActionView.as_view()),
path(r'alert/', views.AlertView.as_view()),
]
它们包含在主路由功能中。
我正在尝试发送一个获取请求,如下所示:
http://localhost:8000/actionsAndAlerts/action/?pk=1/ 像这样:http://localhost:8000/actionsAndAlerts/action/?1/
但是我发送的 pk 没有在 get 方法中呈现为关键字 - 所以我不断收到此错误:AssertionError: Expected view ActionView to be called with a URL keyword argument named “pk”。修正您的 URL 配置,或正确设置视图上的 .lookup_field 属性。
我尝试在 get 方法上方添加:@detail_route(url_path='action/(?P[0-9]+)') 但没有成功。
知道如何解决这个问题吗?
非常感谢。
【问题讨论】:
标签: django django-rest-framework postman