博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DRF(Django Rest Framework)备忘
阅读量:6706 次
发布时间:2019-06-25

本文共 2115 字,大约阅读时间需要 7 分钟。

ProjectType.objects.values('code').distinct() ProjectType表中code字段所有的值(不包含重复的值)

三层嵌套serializers时。有可能报错“没有这个属性”,可以添加source='issue_set'这种方式。

class MyProjectSerializer(serializers.ModelSerializer):    """    项目表:我的借款    """    issue = IssueSerializer(source='issue_set', many=True)

反向取值

class Member(AbstractUser):

name = models.CharField(max_length=30, null=True, blank=True, verbose_name=u'用户名', unique=True)
password = models.CharField(max_length=100, null=False, verbose_name=u'密码')
class MemberIDCard(models.Model):
member = models.OneToOneField(Member, verbose_name=u"会员", null=True, related_name="id_card")
id_no = models.CharField(max_length=30, verbose_name=u'身份证号')

SerializerMethodField 的一种方式

is_recently = serializers.SerializerMethodField(method_name="method_is_recently")
def method_is_recently(self, obj):
pass

class MemberOfLoginSerializer(serializers.ModelSerializer):

"""
登录后返回的member信息
"""
id_no = serializers.ReadOnlyField(source='id_card.id_no')
class Meta:
model = Member
fields = ('id', 'real_name', 'mobile', 'id_no')

class UserViewSet(mixins.RetrieveModelMixin, viewsets.GenericViewSet):

queryset = User.objects.all()
serializer_class = UserSerializer

def get_object(self):    return self.request.user

@api_view(['GET'])

def current_user(request):
serializer = UserSerializer(request.user)
return Response(serializer.data)

class CurrentUserView(APIView):

def get(self, request):
serializer = UserSerializer(request.user)
return Response(serializer.data).

@api_view(['GET'])

def current_user(request):
user = request.user
return Response({
'username': user.username,
'email': user.email,
...
})

class UserViewSet(viewsets.ModelViewSet):

queryset = User.objects.all()
serializer_class = UserSerializer

def get_object(self):    pk = self.kwargs.get('pk')    if pk == "current":        return self.request.user    return super(UserViewSet, self).get_object()

class UserViewSet(mixins.RetrieveModelMixin, viewsets.GenericViewSet):

queryset = User.objects.all()
serializer_class = UserSerializer

def get_object(self):    return self.request.user

转载于:https://www.cnblogs.com/jeff-ideas/p/10540330.html

你可能感兴趣的文章
暴风热点 要的不仅仅是免费WIFI
查看>>
MSR路由器的未来之路
查看>>
《C语言程序设计:问题与求解方法》——3.10节提高部分
查看>>
《数据库基础及实践技术——SQL Server 2008》一3.3 查看和设置数据库选项
查看>>
边缘计算将蚕食云计算,可能吗?
查看>>
别折腾安全软件了 你的手机也许还不配被黑客破解
查看>>
工信部:推动窄带物联网、5G泛在信息基础设施
查看>>
腾商助政和供电将月例会变成日常工作交流
查看>>
对于HIPAA合规来说,安全差距分析重要吗?
查看>>
集成电路产业的未来握在谁手中?
查看>>
Win10市场份额快速增长:上升到26.78%
查看>>
微软公司希望在混合云和数字转型时代帮助管理服务商获胜
查看>>
从安全到分析 物联网如何助力企业转型?
查看>>
索尼公司宣布公司架构及管理结构调整
查看>>
苹果:很快就能找到FBI利用的漏洞
查看>>
引领新ICT 华为企业业务参加CeBIT 2016预热大会
查看>>
戴尔在新加坡设立IoT实验室
查看>>
云南:加强数据开放共享 服务农业产业化
查看>>
拆分一年多了,“两个惠普”公司过得还好不好?
查看>>
电脑病毒或可通过声音进行传播?
查看>>