栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

django rest框架通过OneToOneField的lookup_field

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

django rest框架通过OneToOneField的lookup_field

这就是我设法破解它的方式

models.py

from django.db import models    from django.contrib.auth.models import Userclass Speaker(models.Model):    user = models.oneToOneField(User)    @property    def user__username(self):        return self.user.username    def __unipre__(self):        return self.user.username

serializers.py

from .models import Speakerfrom rest_framework import serializersfrom django.contrib.auth.models import Userclass UserSerializer(serializers.HyperlinkedModelSerializer):    class meta:        model = User        fields = ('url', 'username', 'email', 'groups')        lookup_field = 'username'class SpeakerSerializer(serializers.HyperlinkedModelSerializer):    user = serializers.HyperlinkedRelatedField(        view_name='user-detail',        read_only=True,        lookup_field='username'    )    class meta:        model = Speaker        fields = ('url', 'user')        lookup_field = 'user__username'

view.py

from .models import Speakerfrom .serializers import SpeakerSerializer, UserSerializerfrom rest_framework import viewsetsfrom django.contrib.auth.models import Userclass UserViewSet(viewsets.ModelViewSet):    queryset = User.objects.all()    serializer_class = UserSerializer    lookup_field = 'username'class SpeakerViewSet(viewsets.ModelViewSet):    queryset = Speaker.objects.all().select_related('user')    serializer_class = SpeakerSerializer    lookup_field = 'user__username'


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/645744.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号