Есть ли способ объединить методы/функции выполнения? Представление использует ModelViewSet. У меня есть две функции выполнить_создать и выполнить_обновление, которые делают одно и то же, и я подумал, можно ли их как-то объединить?
Тело
{
"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__'
🤔 А знаете ли вы, что...
Python популярен в анализе данных и машинном обучении с помощью библиотеки scikit-learn.
Также назначьте функцию perform_create
как 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