[英]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.