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
Ищу экспертизу для тех, кто испытывает себя в решении проблемы