我想澄清關於創建模型對象的給定文檔django-rest-framework
。到目前爲止,我發現有3種方法來處理這類事件。何時使用序列化程序的create()和ModelViewset的create()perform_create()
The Serializer's
create()
method。這裏是documentationclass CommentSerializer(serializers.Serializer): def create(self, validated_data): return Comment.objects.create(**validated_data)
的ModelViewset
create()
方法。 Documentationclass AccountViewSet(viewsets.ModelViewSet): queryset = Account.objects.all() serializer_class = AccountSerializer permission_classes = [IsAccountAdminOrReadOnly]
的ModelViewset
perform_create()
方法。 Documentationclass SnippetViewSet(viewsets.ModelViewSet): def perform_create(self, serializer): serializer.save(owner=self.request.user)
這種三種方法取決於你的應用環境是非常重要的。
但是當我們需要使用每個create()/perform_create()
函數??。另一方面,我發現一個帳戶,兩個創建方法被稱爲一個單一的postview請求modelviewset的create()
和序列化的create()
。
希望任何人都可以分享他們的一些知識來解釋,這對我的開發過程肯定很有幫助。
你好!謝謝你的分享你的知識!關於'創建(個體經營,validated_data)'在串行器,這意味着它的重點是數據驗證邏輯?多了,它可以幫助迴歸給定的序列化程序的數據返回到響應權限? –
沒有,所以在這一點上,你已經通過了所有的validat離子。我正在討論在將數據保存到數據庫之前,如何定製已驗證的數據。我會以我的答案爲例。 –
哦,是的,我明白了 –