У меня есть поддон с содержимым внутри.Мне нужно присвоить палете конкретный номер на основе значения внешнего ключа (но этого пока нет в коде).
С почтальоном, когда я POST с каким-то телом json;
- Если я даю какое-то поле с номером, то получаю ошибку, что номер не может быть дублирован.
- Если я не отправляю номер (потому что я даю его по настроенному методу создания)), Я получаю сообщение об ошибке, что число является обязательным полем.
- Если я удаляю число из PalletSerializer, оно сохраняет, но когда мне нужно его получить, номер не отображается.
Как правильно добавить данные перед созданием?Вот сериализаторы:
class ContentSerializer(serializers.ModelSerializer):
class Meta:
model = models.Content
fields = ('id', 'quantity', 'kilograms', 'container')
class PalletSerializer(serializers.ModelSerializer):
contents = ContentSerializer(many=True)
class Meta:
model = models.Pallet
fields = ('id', 'number', 'receipt_waybill', 'client', 'contents',)
def create(self, validated_data):
contents_data = validated_data.pop('contents')
number = 123456
pallet = models.Pallet.objects.create(number=number, **validated_data)
for content_data in contents_data:
specifications_data = content_data.pop('specifications')
instance = models.Content.objects.create(pallet=pallet, **content_data)
instance.specifications.set(specifications_data)
return pallet