KeyError: Как исключить определенные части, когда часть сериализатора пуста
У меня есть эта часть в моем сериализаторе, который использует вложенное поле сериализатора. Когда я пытаюсь отправить свою форму, она возвращает KeyError, если я ничего не добавляю внутри "assigned facilities". Я пытался добавить оператор else, но это, похоже, не помогает. Отладчик действительно жалуется на вторую строку, когда поле пустое, так как же мне исключить ее, когда в поле assigned_facilities нет данных? Я уже использую required=False, allow_null=True внутри сериализатора.
def create(self, validated_data):
assigned_facilities = validated_data.pop("assigned_facilities")
instance = Lead.objects.create(**validated_data)
for item in assigned_facilities:
instance.leadfacility.create(**item)
else:
print("No Facilities Added!")
return instance
Вы можете добавить значение по умолчанию в функцию pop, чтобы она не вызывала ошибку Keyerror
def create(self, validated_data):
assigned_facilities = validated_data.pop("assigned_facilities", [])
instance = Lead.objects.create(**validated_data)
for item in assigned_facilities:
instance.leadfacility.create(**item)
else:
print("No Facilities Added!")
return instance