我需要计算目标的百分比并显示

2024-04-27 02:21:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Django上做app,只是学习,准确地说,我有一个问题,我做了一个列表,里面有一个目标,每个目标都有实现这个目标的步骤,可以有无限个数。好吧,我需要计算目标和显示的百分比,即计算kollichesvo执行的次数(已经实现)并除以阶段总数。问题来了。你知道吗

型号:

class Post(models.Model):
    author = models.ForeignKey(User)
    title = models.CharField(max_length=200)
    text = models.TextField()
    created_date = models.DateTimeField(
            default=timezone.now)
    published_date = models.DateTimeField(
            blank=True, null=True)

    def publish(self):
        self.published_date = timezone.now()
        self.save()

    def __str__(self):
        return self.title
class Stage(models.Model):
    keys = models.ForeignKey(Post)
    title = models.CharField(max_length=200)
    text = models.TextField()
    created_date = models.DateTimeField(
            default=timezone.now)
    published_date = models.DateTimeField()
    end = models.BooleanField(default=False)
    procent = models.IntegerField(default=0)

    def publish(self):
        self.published_date = timezone.now()
        self.save()

    def __str__(self):
        return self.title

视图

def post_detail(request, pk):

    post = get_object_or_404(Post, pk=pk)
    posts = Stage.objects.filter(keys__exact=pk,)        
    return render(request, 'blog/post_detail.html', {'post': post, 'posts': posts})

这个例子

x = len(posts)
for m in posts:
    if end == True:
        ar = ar + 1

stages = (ar / x * 100)

Tags: selfdefault目标datetitlemodelsdefpost
1条回答
网友
1楼 · 发布于 2024-04-27 02:21:00

向类中添加方法:

class Post(models.Model):
    # ...
    def percentage_complete(self):
        total = self.stage_set.count()
        completed = self.stage_set.filter(end=True).count()
        return (float(completed) / total) * 100

在模板中,假设有一个post上下文变量:

% done: {{ post.percentage_complete }}

相关问题 更多 >