Итак, моя модель проста как
class Face(models.Model):
uid = models.CharField(max_length=510, primary_key=True)
photo = models.ImageField(upload_to='face_photos')
сериализатор
class FaceSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Face
fields = ['uid', 'photo']
extra_kwargs = {'uid': {'required': True}, 'photo': {'required': True}}
и вид должен быть примерно таким:
class FaceViewSet(viewsets.ModelViewSet):
queryset = Face.objects.all()
serializer_class = FaceSerializer
permission_classes = [permissions.AllowAny]
И это работает. Однако:
- Я не хочу перечислять, обновлять, удалять параметры. Только POST и GET.
- Я хочу добавить свой лог c в сообщение, поэтому, если
uid
существует, обновите, иначе создайте ... а также другую обработку. - Я хочу индивидуальный ответ после POST.
Как мне добиться всего этого, не теряя всех преимуществ, которые предоставляет viewsets.ModelViewSet
, таких как проверки, автоматически сгенерированные поля HTML в веб-представлении Rest API и т. Д. c?