djangorestframework
HiveMe
全栈开发
展开
-
django restframework 不返回空值
直接上代码了class OrgListSerializer(serializers.ModelSerializer): children = serializers.SerializerMethodField() def get_children(self, obj): pid = obj.id return OrgListSerialize...原创 2019-11-27 16:58:41 · 511 阅读 · 0 评论 -
django restframework 自引用树的序列化,foreignkey自引用序列化
假设有如下模型class Category(models.Model): parent = models.ForeignKey('self', related_name='children', null=True, blank=True, on_delete=m...原创 2019-11-15 15:42:57 · 1424 阅读 · 1 评论 -
Django RestFramework 自定义字段返回
在接口返回数据时,如果数据库表中查询出来的某些字段为null时,在前端需要多处理一些数据异常的情况。django可以自定义序列化返回处理,将返回的内容限制和预处理再返回到前端。1.未处理时返回如图上,有email、mobile这两个字段是有可以为空且默认值为null的。2.to_representation处理在模型序列化类增加, to_representation方法,以自定...转载 2019-11-15 11:17:01 · 1804 阅读 · 0 评论 -
DjangoRestFramework/Restframework-jwt认证流程
问题来源在使用DRF过程中需要添加通过APPID/APPSECRET的方式来登录系统。本来想通过middleware的方式在request中设置user字段从而可以在views中使用。但是通过调试发现,在调用views之前,request中的user还存在。但是等到views中执行时,user就变成了Anonymous用户,大致判断是在后期认证过程中,restframework框架设置了req...原创 2018-11-05 19:41:42 · 528 阅读 · 1 评论 -
nginx+nginx-unit+django “413 Request Entity Too Large”
前言“413 Request Entity Too Large”代表请求包太大,服务器拒绝响应问题由于设计的系统需要上传文件,由于nginx默认允许最大请求是1m,所以当超过1m时,文件就无法上传了解决步骤简版:一、在nginx中增加 配置client_max_body_size 10m;二、升级nginx-unit版本,1.3之前,支持的最大的请求体是2m。复...原创 2018-09-05 10:31:17 · 1358 阅读 · 2 评论 -
DjangoRestFramework修改serializer的field的错误信息
需求默认的serializer每个field返回的都是默认的信息,全是英文的,并且即使使用了国际化翻译,翻译内容也不尽人意,可能需要定制化修改,例如{ "aa": [ "This field is required." ], "bb": [ "This field is required." ], "cc": [ ...原创 2018-08-16 15:25:06 · 1191 阅读 · 0 评论 -
DjangoRestFramework:向serializer中添加额外参数
通过context字段可以达到向serializer中传递参数的问题示例代码:serializer = DeviceByTypeSerializer(device_type, many=True, context={'id': pl.id})而在serializer中使用示例代码如下:class DeviceByTypeSerializer(serializers.ModelSerializer)...原创 2018-06-28 19:00:53 · 2374 阅读 · 0 评论 -
django rest framework :Original exception text was: 'QuerySet' object has no attribute '***'
出现这个问题的原因是:查询返回的是 QuerySet,而我们使用Serializer去序列化Queryset自然会报错,Queryset没有某属性。解决方案:在序列化的Serializer中添加 many=True字段如:serializer = ASerializer(instance=aset, many=True)...原创 2018-06-28 18:57:29 · 3020 阅读 · 0 评论 -
Django REST Framework 使用post_create时,报错 django.db.utils.IntegrityError: UNIQUE constraint failed:
出现在这种错误的原因是:def perform_create(self, serializer): instance = serializer.save(user=self.request.wxuser) return instance如上代码所示,当我们通过这种方式去设置user时,如果保存的对象与user的关系是一对一的关系,那么当user已经与对象关联,再次进行save时则会...原创 2018-06-14 22:55:10 · 9218 阅读 · 0 评论 -
ValueError: “needs to have a value for field ”id“ before this many-to-many relationship can be used”
产生这个错误的原因是,在关联多对多关系时需要id,因为在数据库中多对多关系结构如下:所以如果 直接使用 Model.objects.create(**data)创建时,如果Model中包含多对多关系,那么就会报错:ValueError: “needs to have a value for field ”id“ before this many-to-many relationship can b...原创 2018-06-07 19:34:13 · 5622 阅读 · 0 评论 -
Django-rest-framework CharField/ChoidField 显示 display_name(choices中的human readable)
# models.pyclass User(AbstractUser): GENDER_CHOICES = ( ('M', 'Male'), ('F', 'Female'), ) gender = models.CharField(max_length=1, choices=GENDER_CHOICES)# serializers.p...原创 2018-05-17 17:56:06 · 1351 阅读 · 1 评论