Как я могу вычесть, например, end_date — start_date в шаблоне django

#django

#django

Вопрос:

Я хотел бы вычесть дату в шаблоне, но не знаю как.

есть ли какой-либо способ вычесть два столбца в шаблоне django?

template.html

                 {% for career in careers %}
                    {% if career.user == user%}
                    <div class="flex">
                        <div class="w-1/4">
                            <p class="font-thin">{{career.job}}</p>
                        </div>
                        <div class="w-1/4">
                            <p class="font-thin">{{career.company}}</p>
                        </div>
                        <div class="w-1/4">
                            <p class="font-thin">{{career.position}}</p>
                        </div>
                        <div class="w-1/4">
                            <p class="font-thin">{{career.end_date}}-{{career.start_date}}</p> //as clearly, it doesn't work.
                        </div>
                    </div>  
                    {% endif %}
                {% endfor %}
  

Ответ №1:

вы можете сделать это с @property функцией в models.py

в models.py

 class <YourClassName>(models.Model):
    ...
    @property
    def get_duration(self):
        dt = self.end_date - self.start_date
        # with dt you can get days and seconds and you can covert or format in week or hours whatever you want
        return dt.days # returns number of days
  

затем в шаблоне просто используйте

 {{career.get_duration}}