drf 序列化的写法 总结

总结drf序列化 重点

class Ship2Serializers(serializers.ModelSerializer):
    # gunss = serializers.CharField(source='get_guns_display')
    # user = serializers.CharField(source='user.name')
    # locations = serializers.CharField(source='location.title')
    # boatstatus = serializers.CharField(source='boat_status.title')
    status = serializers.CharField(source='get_status_display')
    display = serializers.CharField(source='get_display_display')
    class Meta:
        model = models.Ship
        fields = '__all__'
        read_only_fields = ('id','user','boat_status','status','display')

使用source=“get_status_display”可以取出choice中的字段。

如果已经使用 read_only_fields = ('id','user','boat_status','status','display') 作为只读字段,那么前端传过来这些数据也不会被处理。

也可以加上write_only

extra_kwargs = {
            'chinese_name':{'write_only':True}
        }

如果自定义了boatstatus字段,且为只读的,则不能。

read_only 和 write_only不能同时使用。

原文地址:https://www.cnblogs.com/ch2020/p/15334027.html