170 похожих чатов

Всем привет! Есть вопрос по Django (Django Rest Framework).

Вот есть у меня serialiser:

class CompanySerializer(serializers.Serializer):
id = serializers.IntegerField()
name = serializers.CharField(max_length=255, required=True)
start_date = serializers.DateField(required=True)
description = serializers.CharField()
city = serializers.CharField(required=True, max_length=255)
owner_id = serializers.IntegerField(required=True, write_only=True)

def create(self, validated_data):
""" Create company method """

owner_id = validated_data.pop('owner_id', None)
company = Company.objects.create(**validated_data)
company_member = CompanyMember.objects.create(user_id=owner_id,
company_id=company.id,
role='owner')
return company

И ViewSet:

class CompaniesListViewSet(viewsets.ViewSet):
def create(self, request):
""" Creates a new company """

serializer = CompanySerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response({'company': serializer.data},
status=status.HTTP_201_CREATED)
else:
return Response(serializer.errors,
status=status.HTTP_400_BAD_REQUEST)

Как я понимаю, если `serializer.is_valid() проходит успешно, а в serializer.save() происходит ошибка, то запрос все равно будет успешным?
Исходя из подходов Django и Django Rest Framework как правильно учесть данный нюанс? Сделать метод, отличный от save или всю логику вынести в какой-то другой объект, отвечающий за создание/обновление объектов, а serialiser использовать только для json-ответов? Заранее благодарю!

1 ответов

15 просмотров

почему не ModelSerializer, для начала?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта