[英]How does django-rest-framework decide what the default `allowed_methods` should be for a `ModelViewSet`?
[英]Django ModelViewSet. How to merge two perform methods/functions?
有沒有辦法合並執行方法/功能? 該視圖使用 ModelViewSet。 我有兩個函數perform_create和perform_update做同樣的事情,我想知道我能以某種方式合並它們嗎?
身體
{
"title": "1 Title",
"description": "1 Description",
"author": {
"id": 1
}
}
看法
class ArticleView(viewsets.ModelViewSet):
queryset = Article.objects.all()
serializer_class = ArticleSerializer
def perform_create(self, serializer):
author = get_object_or_404(Author, id=self.request.data['author']['id'])
return serializer.save(author=author)
def perform_update(self, serializer):
author = get_object_or_404(Author, id=self.request.data['author']['id'])
return serializer.save(author=author)
序列化器
class AuthorSerializer(serializers.ModelSerializer):
class Meta:
model = Author
fields = '__all__'
class ArticleSerializer(serializers.ModelSerializer):
author = AuthorSerializer()
class Meta:
model = Article
fields = '__all__'
將perform_create
function 也分配為perform_update
:
class ArticleView(viewsets.ModelViewSet):
queryset = Article.objects.all()
serializer_class = ArticleSerializer
def perform_create(self, serializer):
author = get_object_or_404(Author, id=self.request.data['author']['id'])
return serializer.save(author=author)
perform_update = perform_create
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.