使用coverage来显示测试drf视图必须涵盖的内容。并且覆盖率显示所有视图都经过测试(由unittest + dango客户端API覆盖)
但是报道显示需要涵盖这一部分:
def get_serializer_class(self):
return self.serializer_class `
我认为该代码可能因为无用而删除(这不是我的代码):)
知道如何在GenericAPIView
中涵盖过去的代码吗?感谢任何帮助
答案 0 :(得分:1)
指定序列化程序类有两种方法:
serializer_class
属性。 get_serializer_class()
方法。如果您已经在课程中添加了serializer_class
属性(第一种方法),那么get_serializer_class()
肯定是无用的。
这是一个例子:
from django.contrib.auth.models import User
from myapp.serializers import UserSerializer
from rest_framework import generics
class UserList(generics.GenericAPIView):
queryset = User.objects.all()
serializer_class = UserSerializer
在大多数情况下,您应该使用第一种方法,因为通常您只需要一个用于API视图的序列化程序。第二种方法对于动态行为很有用,例如使用不同的串行器进行读写操作,或者为不同类型的用户提供不同的序列化器。
示例:
def get_serializer_class(self):
if self.request.user.is_staff:
return StaffSerializer
return BasicSerializer