Дата в процентах для индикатора выполнения - PullRequest
0 голосов
/ 07 мая 2020

Добрый день. Помоги мне, пожалуйста. Есть проект на Django. В проекте есть код из bootstrap4 - индикатор выполнения, мне нужен этот индикатор выполнения, но я не могу понять, как реализовать его производительность, так как в нем данные хранятся в процентах, но у меня нет процента, а дата проекта , то есть есть начало. Допустим, проект - 01 02 2000, а конец проекта - 01 02 2002, разница между ними составляет 730 дней. Вот как я превращаю эти 730 дней в 100%, а остаток, скажем, 140 дней, тоже превращаю в проценты.

HTML Шаблон

<div class="progress">
  <div class="progress-bar bg-success" role="progressbar" style="width: 10%" aria-valuenow="10" aria-valuemin="0" aria-valuemax="100"></div>
</div>

Python Шаблон

prjauth = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, verbose_name="")
    prjtitle = models.CharField(max_length=200, verbose_name="")
    prjdesc = models.TextField(verbose_name="")
    prjfiles = models.FileField(upload_to='files_project', verbose_name="")
    prjdatestart = models.DateTimeField(default=timezone.now, verbose_name="")
    prjdateend = models.DateTimeField(blank=True, null=True, verbose_name="")
    prjproekts = models.DateTimeField(blank=True, null=True, verbose_name="")
    prjproekte = models.DateTimeField(blank=True, null=True, verbose_name="")
    prjdatesnabs = models.DateTimeField(blank=True, null=True, verbose_name="")
    prjdatesnabe = models.DateTimeField(blank=True, null=True, verbose_name="")
    prjdatelines = models.DateTimeField(blank=True, null=True, verbose_name="")
    prjdatelinee = models.DateTimeField(blank=True, null=True, verbose_name="")

1 Ответ

0 голосов
/ 07 мая 2020

Вы можете добавить в свою модель метод, который может возвращать прогресс по дате:

Class MyModel(models.Model):
    # fields

    def get_progress(self):
        return timezone.now().date - self.start_date / self.end_date - self.start_date

Метод может быть вызван в вашем шаблоне:

aria-valuenow="{{ mymodel.get_progress }}"

Наконец, я бы посоветовал удаление префикса prj в полях вашей модели, так как это затрудняет чтение - предположительно, ваша модель уже называется чем-то вроде Project - поэтому было бы легче читать project.start_date, чем project.prjstart_date.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...