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
Вернуться на верх