【发布时间】:2014-09-20 02:24:36
【问题描述】:
我正在尝试使用 get_serializer_class() 并且收到错误消息。这是我的看法 -
class CalendarDetail(RetrieveUpdateDestroyAPIView):
def get_serializer_class(self):
if self.request.method == 'GET':
serializer_class = CalendarGETSerializer
elif self.request.method == 'PUT':
serializer_class = CalendarPUTSerializer
return serializer_class
def get(self, request, format=None):
evntname = self.request.GET.get('name')
queryset = Evntmst.objects.filter(evntmst_name=evntname)
serializer = get_serializer_class(queryset)
if queryset:
return Response(serializer.data)
else:
raise Http404
def put(self, request, format=None):
serializer = get_serializer_class(data=request.DATA)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST
这是我的 urls.py -
url(r'^deploy/calendartest/$', CalendarDetail.as_view(), name='CalendarDetail'),
当我尝试点击 URL 时,我会收到以下错误消息 -
class CalendarDetail(RetrieveUpdateDestroyAPIView):
^
SyntaxError: invalid syntax
[14/Sep/2014 20:08:16] "GET /deploy/calendartest/?name=cal_daily HTTP/1.1" 500 5
9
我猜这是我正确调用的类内部的东西,语法错误不一定是真的? 我没有得到的是,我已经设计了这个类,就像我设计所有其他工作的类一样,我有一个单独的视图,使用一个序列化程序进行简单的获取,该序列化程序将该 URL 作为 200 而不是 500 返回。
【问题讨论】:
-
有时,当您遇到语法错误时,问题就在它上面的那一行。类定义的正上方是否有任何看起来损坏的东西?
-
不,我在课程行之前有一个注释行
## TEST CLASS VIEW -
对不起,我的意思是第一行代码不是注释/空行/解释器将忽略的内容。
-
哇哦!你是对的,我又去了另一行,我无意中删除了前一行代码的右括号。我们很好!
标签: python django django-rest-framework