Я хочу пояснити наведену документацію django-rest-framework
щодо створення об'єкта моделі. Поки що я виявив, що існує 3 підходи щодо того, як обробляти такі події.
Метод серіалізатора
create()
. Ось документаціяclass CommentSerializer(serializers.Serializer): def create(self, validated_data): return Comment.objects.create(**validated_data)
Метод ModelViewset
create()
. Документаціяclass AccountViewSet(viewsets.ModelViewSet): queryset = Account.objects.all() serializer_class = AccountSerializer permission_classes = [IsAccountAdminOrReadOnly]
Метод ModelViewset
perform_create()
. Документаціяclass SnippetViewSet(viewsets.ModelViewSet): def perform_create(self, serializer): serializer.save(owner=self.request.user)
Ці три підходи важливі залежно від середовища вашої програми.
Але КОЛИ нам потрібно використовувати кожну create() / perform_create()
функцію ??. З іншого боку, я знайшов деяку інформацію про те, що для одного запиту на публікацію були використані два методи створення - modelviewset create()
та serializer create()
.
Будемо сподіватися, що хтось поділиться своїми знаннями для пояснення, і це, безумовно, буде дуже корисним у моєму процесі розробки.
create(self, validated_data)
серіалізатора in, це означає, що він зосереджений на логіці перевірки даних? і багато іншого, це може допомогти повернути дані даного серіалізатора назад у відповідь, чи не так?