Как получить все кмс используя метод свойства в django для рендеринга в шаблоны?
Приветствую разработчиков, на самом деле я хочу отобразить общий километраж, пройденный конкретным автомобилем, используя метод @property в модели django. вот мои модели
class Log(models.Model):
vehicle = models.ForeignKey(Vehicle, on_delete=models.CASCADE)
driver = models.ForeignKey(Driver, on_delete=models.CASCADE)
date = models.DateField(default=timezone.now, blank=True, null=True)
и связанные с этими моделями у меня есть другие модели
class Logsheet(models.Model):
log = models.ForeignKey(Log, on_delete=models.CASCADE, related_name="logsheets")
trip = models.IntegerField(blank=False, null=False)
distance_from = models.FloatField(blank=True, null=True, default=0.0)
distance_to = models.FloatField(blank=True, null=True, default=0.0)
time_from = models.TimeField(blank=True, null=True)
time_to = models.TimeField(blank=True, null=True)
source = models.CharField(max_length=100, blank=True, null=True)
destination = models.CharField(max_length=100, blank=True, null=True)
doeking_km = models.FloatField(blank=True, null=True, default=0.0)
def save(self, *args, **kwargs):
self.doeking_km = int(float(self.distance_to)) - int(float(self.distance_from))
super(Logsheet, self).save(*args, **kwargs)
где находится дукинг км это ежедневные км ...
Проблемы
Я хочу отобразить все километры, пройденные конкретным транспортным средством, используя метод @property, чтобы я мог легко отобразить его шаблоны, помогите мне, ребята.
class Log(models.Model):
vehicle = models.ForeignKey(Vehicle, on_delete=models.CASCADE)
driver = models.ForeignKey(Driver, on_delete=models.CASCADE)
date = models.DateField(default=timezone.now, blank=True, null=True)
@property
def overall_kms(self):
kms = Logsheet.objects.filter(log__vehicle__name = self.vehicle__name)
return [i.overall_kms for i in kms]
# you can iterate in HTML using for loop like this
# ------ in views.py ----------
all_log = Log.objects.all()
# ------ in html ----------
<tr>
{% for i in all_log %}
<td>{{i.vehicle}}</td>
<td>{{i.driver}}</td>
<td>{{i.date}}</td>
<td>
{% for j in i.overall_kms %}
{{j}}
{% endfor %}
</td>
{% endfor %}
</tr>