python - 进度条的日期百分比
问题描述
下午好。请帮帮我。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="")
解决方案
您可以向模型添加一个可以返回日期进度的方法:
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
.
推荐阅读
- r - 有没有一种方法可以在 R 中执行条件语句
- swift - 在多个应用程序启动过程中保存数据
- python - Pandas - 将索引值设置为列名
- javascript - 使用 fetch 的无效请求方法 DELETE
- c# - 如何减少 for 循环以使代码更高效?
- android - 是否可以在 Cloud Function 中为 Google Cloud Platform API 生成访问令牌?
- r - 在 r studio 中过滤变量
- python-3.x - 如何比较一个类的实例
- spring - 需要从 Spring Cloud Gateway 路由中的 OAuth2User 获取经过身份验证的用户名
- javascript - CSS - 图像隐藏在溢出区域