def setUp(self):
from .models import User
from .serializers import SkillSerializer
contextual = self._getTarget()
def has_nested(serializer_class, key_name, default):
def _has_nested(token, context):
if context.get(key_name, False):
name_list = token.translator.translate(serializer_class, None, context)
return ["{}__{}".format(token.queryname, name) for name in name_list]
else:
return default
return _has_nested
class ForContextualTestUserSerializer(serializers.ModelSerializer):
skills = serializers.SerializerMethodField()
class Meta:
model = User
fields = ('id', 'username', 'skills')
@contextual(has_nested(SkillSerializer, 'with_skills', default=[]))
def get_skills(self, ob):
if self.context.get("with_skills", False):
return SkillSerializer(ob.skills, many=True).data
else:
return []
self.Serializer = ForContextualTestUserSerializer
评论列表
文章目录