मैं अपने ControlsSerializer में relatedfiles_set ला रहा हूं, लेकिन मैं सुरक्षा उद्देश्यों के लिए upload_by_user_id और Organization_id को अस्पष्ट करना चाहता हूं। जब भी मैं नई संबंधित फाइलें बनाता हूं, तब भी मुझे संबंधितफाइलसेरियलाइज़र में उन फ़ील्ड की आवश्यकता होती है, लेकिन मैं नहीं चाहता कि वे जीईटी अनुरोधों के दौरान दिखाए जाएं। क्या इन दो प्रकार के अनुरोधों के लिए अलग-अलग धारावाहिक बनाने के बिना मैं इन क्षेत्रों को छुपा सकता हूं?

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',)
0
ambe5960 10 सितंबर 2019, 19:18

1 उत्तर

सबसे बढ़िया उत्तर

आप उन क्षेत्रों को घोषित कर सकते हैं जिन्हें आप write_only फ़ील्ड के रूप में "छिपाना" चाहते हैं, DRF डॉक्स में इसके बारे में एक उदाहरण है, आप अपने 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},
        }
0
henriquesalvaro 10 सितंबर 2019, 16:23