अपडेट किया जा सकता है, मैं चाहता हूं कि उपयोगकर्ता केवल एक विशिष्ट फ़ील्ड अपडेट कर सकें। उदाहरण के लिए:django rest framework: फ़ील्ड को सीमित करें जिन्हें
models.py
class Snippet(models.Model):
created = models.DateTimeField(auto_now_add=True)
title = models.CharField(max_length=100, blank=True, default='')
code = models.TextField()
linenos = models.BooleanField(default=False)
language = models.CharField(choices=LANGUAGE_CHOICES, default='python', max_length=100)
style = models.CharField(choices=STYLE_CHOICES, default='friendly', max_length=100)
class Meta:
ordering = ('created',)
serializer.py
class SnippetSerializer(serializers.ModelSerializer):
class Meta:
model = Snippet
fields = ('id', 'title', 'code', 'linenos', 'language', 'style')
views.py
class SnippetList(generics.ListCreateAPIView):
queryset = Snippet.objects.all()
serializer_class = SnippetSerializer
class SnippetDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = Snippet.objects.all()
serializer_class = SnippetSerializer
एक बार Snippet
बनाया, उपयोगकर्ता केवल title
अद्यतन करने के लिए सक्षम होना चाहिए खेत।
serializers.py
def update(self, instance, validated_data):
"""
Update and return an existing `Snippet` instance, given the validated data.
"""
instance.title = validated_data.get('title', instance.title)
instance.save()
return instance
serializer कक्षा में:
मैं मैं कुछ इस तरह से है कि प्राप्त कर सकते हैं पता है। लेकिन मैं जानना चाहता हूं, क्या ऐसा कोई तरीका है कि ब्राउज़ करने योग्य एपीआई केवल title
फ़ील्ड को संपादित फॉर्म में दिखाए? और उन क्षेत्रों के सत्यापन को भी छोड़ दें जिनकी आवश्यकता नहीं है?
धन्यवाद! वहां आधा रास्ता ... 'read_only' फ़ील्ड चले गए हैं। लेकिन वे 'POST' और' PUT' रूपों में चले गए हैं :( –