Reputation: 53
I want to multiply two fields from the model and display it in a template. I have two models:
class Priority(models.Model):
priorityName=models.CharField(max_length=100)
priorityScore=models.IntegerField()
def __str__(self):
return str(self.priorityScore)
class ImpactMatrix(models.Model):
objectName=models.ForeignKey(ObjectName,on_delete=models.CASCADE)
actionName=models.ForeignKey(ActionObject,on_delete=models.CASCADE)
priority=models.ForeignKey(Priority,on_delete=models.CASCADE,related_name='priority')
functional=models.ForeignKey(Priority,on_delete=models.CASCADE,related_name='functional')
supervision=models.ForeignKey(Priority,on_delete=models.CASCADE,related_name='supervision')
approval=models.ForeignKey(Priority,on_delete=models.CASCADE,related_name='approval')
I want to multiply the priorityScore in ImpactMatrix.priority * ImpactMatrix.functional
How do I do this?
Upvotes: 4
Views: 1620
Reputation: 1452
You need to use a custom template tag.
you can refer the link for more info about custom template tags
@register.simple_tag()
def multiply(priority, functional, *args, **kwargs):
return priority * functional
and you can you the tag in template like this
{% load your_custom_template_tags %}
{% multiply im_obj.priority.priorityScore im_obj.functional.priorityScore %}
Upvotes: 1
Reputation: 88689
Define a @property
in model and access it from template as any other model field,
class ImpactMatrix(models.Model):
objectName = models.ForeignKey(ObjectName, on_delete=models.CASCADE)
actionName = models.ForeignKey(ActionObject, on_delete=models.CASCADE)
priority = models.ForeignKey(Priority, on_delete=models.CASCADE, related_name='priority')
functional = models.ForeignKey(Priority, on_delete=models.CASCADE, related_name='functional')
supervision = models.ForeignKey(Priority, on_delete=models.CASCADE, related_name='supervision')
approval = models.ForeignKey(Priority, on_delete=models.CASCADE, related_name='approval')
@property
def some_name(self):
return self.priority.priorityScore*self.functional.priorityScore
and in your tempate,
{% impactmatrix_object.some_name %}
Upvotes: 4