Moh*_*eza 5 python django django-serializer django-rest-framework drf-queryset
我正在为模型使用下面的序列化器User,但是当我使用深度来处理外键时,密码会显示在User对象中。
用户序列化器:
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
read_only_fields = ('is_active', 'is_staff', 'is_superuser',)
exclude = ('password', )
extra_kwargs = {'password': {'write_only': True, 'min_length': 4}}
Run Code Online (Sandbox Code Playgroud)
在下面的序列化器中一切都很好:
class AuditSerializer(serializers.ModelSerializer):
def __init__(self, instance=None, **kwargs):
if instance:
setattr(self.Meta, 'depth', 10)
else:
setattr(self.Meta, 'depth', 0)
super(AuditSerializer, self).__init__(instance, **kwargs)
initiator = UserSerializer(read_only=True)
class Meta:
model = Audit
fields = ['id', 'initiator']
read_only_fields = ['id', 'initiator']
depth = 0
Run Code Online (Sandbox Code Playgroud)
但在下面与之前的模型/序列化器相关的内容中,我遇到了密码问题:
class AuditAttachmentSerializer(serializers.ModelSerializer):
def __init__(self, instance=None, **kwargs):
if instance:
setattr(self.Meta, 'depth', 10)
else:
setattr(self.Meta, 'depth', 0)
super(AuditAttachmentSerializer, self).__init__(instance, **kwargs)
class Meta:
model = AuditAttachment
fields = ['id', 'audit']
read_only_fields = ['id']
depth = 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2045 次 |
| 最近记录: |