Helo everyone, am trying to compute unit price and the quantity from this table as follows
class Marketers(models.Model):
category =models.ForeignKey(Category, on_delete=models.CASCADE, null=True)
name =models.CharField(max_length=50, null=True, blank =True)
grade =models.CharField(max_length=50, null=True, blank =True)
quatity_received = models.IntegerField(default=0, null=True, blank =True)
unit_price =models.IntegerField(default=0, null=True, blank =True)
customer = models.CharField(max_length=50, null=True, blank =True)
date_received = models.DateTimeField(auto_now_add=True)
date_sold = models.DateTimeField(auto_now_add=True)
@property
def get_total(self):
total = self.quatity_received * self.unit_price
return total
this is how i call it in my template
<td class="align-middle text-center">
<span class="text-secondary text-xs font-weight-bold">{{ list.get_total }}</span>
<p class="text-xs text-secondary mb-0">Overall Price </p>
</td>
this is the erro am receiving
TypeError: unsupported operand type(s) for *: 'NoneType' and 'NoneType'
please i need help. Thanks
Since both quatity_received and unit_price are nullable there is a possibility you are trying to multiply two NoneType together hence the error
TypeError: unsupported operand type(s) for *: 'NoneType' and 'NoneType'
Example to recreate the error
[3.8.8] >>> x=None
[3.8.8] >>> x
[3.8.8] >>> x*1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'
Solution:
If you are going to have nullable fields try rewriting the get_total function as so
@property
def get_total(self):
if(self.quatity_received is None and self.unit_price is None):
return 0
else:
return self.quatity_received * self.unit_price