[英]Django REST Framework, limiting fields on foreignkey relationship when serializer depth = 1
我正在使用Django REST Framework,並且具有如下序列化器:
class UserProfileSerializer(serializers.ModelSerializer):
class Meta:
model = UserProfile
depth = 1
fields = ['user','team','correct','wrong','percentage']
如果傳遞所有user
數據(包括哈希密碼),則會出現問題。 如何限制要傳遞的字段?
我有一個如下的UserSerializer(它擁有我真正想要的唯一字段):
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ['first_name','last_name','username']
代替depth
選項,在UserProfileSerializer
顯式聲明user
字段,並將UserSerializer
用於此字段:
class UserProfileSerializer(serializers.ModelSerializer):
user = UserSerializer()
class Meta:
model = UserProfile
fields = ['user','team','correct','wrong','percentage']
或者嘗試像這樣覆蓋build_nested_field
:
class UserProfileSerializer(serializers.ModelSerializer):
class Meta:
model = UserProfile
depth = 1
fields = ['user','team','correct','wrong','percentage']
def build_nested_field(self, field_name, relation_info, nested_depth):
if field_name == 'user':
field_class = UserSerializer
field_kwargs = get_nested_relation_kwargs(relation_info)
return field_class, field_kwargs
return super().build_nested_field(field_name, relation_info, nested_depth)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.