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 ответов

2 просмотра

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

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

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

коллеги, добрый вечер! А никто не знает как модальная форма может себя закрыть? Ну допустим модальная форма определила, что смысла ей работать нет и хочет вернуть modalResult...
Михаил
83
что это и почему оно? executor.start_polling(bot, skip_updates=True, on_startup=on_startup, File "/usr/local/lib/python3.10/dist-packages/aiogram/utils/executor.py", line 4...
𐌍𐌄 ᕓ𐌄𐌓𐌌Ꝋ𐌓𐌄
2
средствами IBX как-то можно выполнить запрос insert ... returning?
Igor
31
объясните, я прада не понимаю. зачем в перле нужен аниивент? кому он пригодился в действительно нагруженных проектах?
nerv
30
Никто случаем не знает, как по-хорошему делается дозапись текста в edit на винапи?
The Bird of Hermes
25
Hi there everyone Is there anyone who have not started hamster bot yet? I need only one, I'll be glad if you do this for me DM if you haven't yet
Mehrshad
53
А какие у этого try практические плюсы перед eval?
Oleg Volkov
41
Составить программу для подсчета числа нулевых символов с использованием команд управления циклом loop. Мы проходили TASM, если вдруг нужно будет. Если никто не хочет помогать...
Гарри Поттер
10
А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Ребзя, а кто-нибудь делал на сайте Турбо Страницы Яндекса? Какую-то пользу они дают или нет? Приносят ли трафик?
Андрей [aharito] Харитонов
20
Карта сайта