您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

django-rest-framework序列化器在多个视图中的不同字段

5b51 2022/1/14 8:22:59 python 字数 2660 阅读 532 来源 www.jb51.cc/python

我是Django的新手,无法找到问题的解决方案. 问题是在使用不同视图的情况下强制特定的序列化器包括不同数量的字段.我想在第一个视图中使用’id’字段,在第二个视图中使用’id’和’name’字段. 这是我的model.py class Processing(models.Model): id = models.AutoField(primary_key=True) name =

概述

问题是在使用不同视图的情况下强制特定的序列化器包括不同数量的字段.我想在第一个视图中使用’id’字段,在第二个视图中使用’id’和’name’字段.

这是我的model.py

class Processing(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField()
    description = models.CharField()

这是我的serializer.py

class ProcessingSerializer(serializers.ModelSerializer):
    id = serializers.ModelField(model_field=Processing()._Meta.get_field('id'))
    class Meta:
        model = Processing
        fields = ('id','name')

欢迎任何帮助.

但是当您使用多个序列化程序执行不同的任务时,生活变得更加简单.您可以使用get_serializer_class方法轻松切换序列化程序.以下是手册中的一个示例,其中显示了如何将一个用于管理员而另一个用于普通用户

def get_serializer_class(self):
    if self.request.user.is_staff:
        return FullAccountSerializer
    return BasicAccountSerializer

有时您希望在列表中使用单个序列化程序,在提供详细信息时使用另一个序列化程序.尝试这样的事情:

def get_serializer_class(self):
    if self.action == 'retrieve':
        return serializers.PlayerDetailSerializer
    else : 
        return serializers.PlayerSerializer

生活这种方式简单得多.

总结

以上是编程之家为你收集整理的django-rest-framework序列化器在多个视图中的不同字段全部内容,希望文章能够帮你解决django-rest-framework序列化器在多个视图中的不同字段所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶