隐藏django GET请求中的字段

隐藏django GET请求中的字段,django,serialization,django-models,django-rest-framework,Django,Serialization,Django Models,Django Rest Framework,我正在获取ControlsSerializer中设置的相关文件,但出于安全目的,我想通过用户id和组织id隐藏上传的文件。当我创建新的relatedfiles时,我仍然需要RelatedFileSerializer中的这些字段,但我不希望它们在GET请求期间显示。是否有任何方法可以隐藏这些字段而不为这两种类型的请求创建单独的序列化程序 class RelatedFileSerializer(serializers.ModelSerializer): class Meta:

我正在获取ControlsSerializer中设置的相关文件,但出于安全目的,我想通过用户id和组织id隐藏上传的文件。当我创建新的relatedfiles时,我仍然需要RelatedFileSerializer中的这些字段,但我不希望它们在GET请求期间显示。是否有任何方法可以隐藏这些字段而不为这两种类型的请求创建单独的序列化程序

class RelatedFileSerializer(serializers.ModelSerializer):
    class Meta:
        model = RelatedFiles
        fields = ('control', 'file', 'uploaded_by_user_id', 'organization_id', 'note', 'uploaded_at')

class ControlsSerializer(serializers.ModelSerializer):
    relatedfiles_set = RelatedFileSerializer(many=True, read_only=True)

    class Meta:
        model = Controls
        fields = ('relatedfiles_set', 'id', 'sorting_id',  'requirement', 'requirement_section', 'requirement_subsection',)

您可以将要“隐藏”的字段声明为
write_only
字段,其中有一个示例,您可以将
RelatedFileSerializer
声明为:

class RelatedFileSerializer(serializers.ModelSerializer):
    class Meta:
        model = RelatedFiles
        fields = ('control', 'file', 'uploaded_by_user_id', 'organization_id', 'note', 'uploaded_at')
        extra_kwargs = {
            'uploaded_by_user_id': {'write_only': True},
            'organization_id': {'write_only': True},
        }

非常感谢。我已经看到了这一点,但无法理解具体的实现。