以进度条百分比表示的日期



下午好。请帮帮我。有一个关于Django的项目。这个项目有一个来自bootstrap4的代码-进度条,我需要这个进度条,但我不明白如何实现它的性能,因为它有以百分比存储的数据,但我没有百分比,但项目日期,也就是说,有一个开始。假设项目是2000年02月01日,项目结束时01年02月02日,两者之间有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="")

您可以在模型中添加一个方法,该方法可以返回日期进度:

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更容易。

最新更新