修复BUG(框架类): serializers.py 中fields 过滤bug
parent
062919f0cc
commit
5253b0802e
|
@ -1,7 +1,10 @@
|
||||||
|
from functools import cached_property
|
||||||
|
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
from rest_framework.serializers import ModelSerializer
|
|
||||||
from rest_framework.fields import empty
|
from rest_framework.fields import empty
|
||||||
from rest_framework.request import Request
|
from rest_framework.request import Request
|
||||||
|
from rest_framework.serializers import ModelSerializer
|
||||||
|
from rest_framework.utils.serializer_helpers import BindingDict
|
||||||
|
|
||||||
|
|
||||||
class CustomModelSerializer(ModelSerializer):
|
class CustomModelSerializer(ModelSerializer):
|
||||||
|
@ -37,7 +40,7 @@ class CustomModelSerializer(ModelSerializer):
|
||||||
if self.creator_field_name in self.fields.fields:
|
if self.creator_field_name in self.fields.fields:
|
||||||
validated_data[self.creator_field_name] = self.request.user
|
validated_data[self.creator_field_name] = self.request.user
|
||||||
if self.dept_belong_id_field_name in self.fields.fields:
|
if self.dept_belong_id_field_name in self.fields.fields:
|
||||||
validated_data[self.dept_belong_id_field_name] = getattr(self.request.user,'dept_id',None)
|
validated_data[self.dept_belong_id_field_name] = getattr(self.request.user, 'dept_id', None)
|
||||||
return super().create(validated_data)
|
return super().create(validated_data)
|
||||||
|
|
||||||
def update(self, instance, validated_data):
|
def update(self, instance, validated_data):
|
||||||
|
@ -51,11 +54,11 @@ class CustomModelSerializer(ModelSerializer):
|
||||||
return getattr(self.request.user, 'username', None)
|
return getattr(self.request.user, 'username', None)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
@cached_property
|
||||||
|
|
||||||
@property
|
|
||||||
def fields(self):
|
def fields(self):
|
||||||
fields = super().fields
|
fields = BindingDict(self)
|
||||||
|
for key, value in self.get_fields().items():
|
||||||
|
fields[key] = value
|
||||||
|
|
||||||
if not hasattr(self, '_context'):
|
if not hasattr(self, '_context'):
|
||||||
return fields
|
return fields
|
||||||
|
|
Loading…
Reference in New Issue