AttributeError: объект 'NoneType' не имеет атрибута 'is_nightly'

Я получил ошибку в выражении с ниже определенной функцией на serializer.py и у меня есть заказ товаров с различным расчетом с проводкой на ночной основе и однократной проводкой. if special_order_item.special_item.is_nightly == True: AttributeError: 'NoneType' object has no attribute 'is_nightly'

ошибка была связана с "if special_order_item.special_item.is_nightly == True:"

models.py

class SpecialsItem(models.Model):
    hotel = models.ForeignKey(Hotel, on_delete=models.CASCADE, related_name="special_items", null=False, blank=False)
    code = UpperCaseCharField(max_length=50, blank=True, null=True)
    desc = models.CharField(max_length=100, blank=True, null=True)
    pms_tran_code = UpperCaseCharField(max_length=50, blank=True, null=True)
    unit_price = models.DecimalField(max_digits=20, decimal_places=10, default=0)
    is_nightly = models.BooleanField(default=True)
    inventory = models.IntegerField(default=0)
    image = models.ImageField(upload_to='img', blank=True, null=True, default='')

serializers.py

class SpecialsOrderItemsSerializer(serializers.ModelSerializer):
    special_item = SpecialItemSerializer(many=False, read_only=True)
    amount = serializers.SerializerMethodField(method_name='sub_total')
    class Meta:
        model = SpecialOrderItems
        fields = [
            'id',
            'reservation',
            'special_item',
            'qty',
            'amount',
            'created_by',
            'updated_by'
        ]

    def sub_total(self, special_order_item:SpecialOrderItems): # definedname : model_object
        if special_order_item.special_item.is_nightly == True:
            items_total = special_order_item.qty * special_order_item.special_item.unit_price * special_order_item.reservation.night
            return items_total
        else: 
            items_total = special_order_item.qty * special_order_item.special_item.unit_price
            return items_total

Ищу экспертизу для тех, кто испытывает себя в решении проблемы

Вернуться на верх