Django   发布时间:2022-04-10  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了django restframework serializer 增加自定义字段大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

<div id="cnblogs_post_body" class="blogpost-body">

在使用django restframework serializer 序列化在django中定义的model时,有时候我们需要额外在serializer中增加一些model中没有的字段。有两种方法实现这个目的。

假设现在有一个Animal模型,其中有name,type,country字段,country为外键。我们在序列化Animal时,需要额外增加外键country的area信息。

1.首先,在django的model中定义property

= models.CharField(max_length=50,default== models.CharField(max_length=50,default== models.ForeignKey(Country,blank=True,null=@property </span><span style="color: #0000ff;"&gt;def</span><span style="color: #000000;"&gt; country_area(self): </span><span style="color: #0000ff;"&gt;return</span><span style="color: #000000;"&gt; self.country.area

2.然后在定义django restframework的serializer时,使用字段的source参数指向我们上面定义好的property

= serializers.IntegerField(read_only== serializers.CharField(max_length=50= serializers.CharField(max_length=50= serializers.PrimaryKeyRelatedField(read_only== serializers.FloatField(required=False,source=

=</span><span style="color: #0000ff;"&gt;class</span><span style="color: #000000;"&gt; Meta: model </span>=<span style="color: #000000;"&gt; Animal fields </span>= (<span style="color: #800000;"&gt;'</span><span style="color: #800000;"&gt;id</span><span style="color: #800000;"&gt;'</span>,<span style="color: #800000;"&gt;'</span><span style="color: #800000;"&gt;name</span><span style="color: #800000;"&gt;'</span>,<span style="color: #800000;"&gt;'</span><span style="color: #800000;"&gt;type</span><span style="color: #800000;"&gt;'</span>,<span style="color: #800000;"&gt;'</span><span style="color: #800000;"&gt;country</span><span style="color: #800000;"&gt;'</span>,<span style="color: #800000;"&gt;'</span><span style="color: #800000;"&gt;country_area</span><span style="color: #800000;"&gt;'</span><span style="color: #000000;"&gt;) </span><span style="color: #0000ff;"&gt;def</span><span style="color: #000000;"&gt; get_country_area(self,obj): </span><span style="color: #0000ff;"&gt;return</span> obj.country.area </pre>

几点说明:

  1. 当不指定其method_name时,默认为get_
  2. 如果使用ModelSerializer并指定字段时,要包含此时定义的字段

大佬总结

以上是大佬教程为你收集整理的django restframework serializer 增加自定义字段全部内容,希望文章能够帮你解决django restframework serializer 增加自定义字段所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: