获取具有特定状态的对象总数

Get the total count of object with specific status

正在尝试获取要显示在主页上的对象总数。

这是我的代码

def dashboard(request):
    

    total_issues = Issue.objects.all().count()
    open_issues = Issue.objects.filter(mark_as='Open').count()
    closed_issues = Issue.objects.filter(mark_as='Closed').count()

    context = {'ordered_issues': ordered_issues, 
               'total_issues': total_issues, 
               'open_issues': open_issues,
               'closed_issues': closed_issues}
    return render(request, 'issues/total_issues.html', context)

和我的模特

class Issue(models.Model):
    MARK_AS = ((True, 'Open'), (False, 'Closed'))
    
    title = models.CharField(max_length=100)
    content = models.TextField()
    date_posted = models.DateTimeField(default=timezone.now)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    assignee = models.ForeignKey(Profile, on_delete=models.SET_NULL, null=True, blank=True)
    mark_as = models.BooleanField(choices=MARK_AS, default=True)
    
    

    def __str__(self):
        return self.title


    def get_absolute_url(self):
        return reverse('issue-detail', kwargs={'pk': self.pk})

没有输出

此代码是模板 'issues/total_issues.html

<div class="row">
    <div class="col">
        <div class="col-md">
            <div class="card text-center text-white  mb-3" id="total_issues">
                <div class="card-header">
                    <h5 class="card-title">Total Issues</h5>
                </div>
                <div class="card-body">
                    <h3 class="card-title">{{total_issues}}</h3>
                </div>
            </div>
        </div>
    </div>

    <div class="col">
        <div class="col-md">
            <div class="card text-center text-white  mb-3" id="open_issues">
                <div class="card-header">
                    <h5 class="card-title">Open</h5>
                </div>
                <div class="card-body">
                    <h3 class="card-title">{{open_issues}}</h3>
                </div>
            </div>
        </div>
    </div>

    <div class="col">
        <div class="col-md">
            <div class="card text-center text-white  mb-3" id="closed_issues">
                <div class="card-header">
                    <h5 class="card-title">Closed</h5>
                </div>
                <div class="card-body">
                    <h3 class="card-title">{{closed_issues}}</h3>
                </div>
            </div>
        </div>
    </div>

</div>

我做错了什么?

忽略这部分 我写这篇文章是因为显然代码太多而细节不够

忽略这部分 我写这篇文章是因为显然代码太多而细节不够

忽略这部分 我写这篇文章是因为显然代码太多而细节不够

虽然 mark_as 字段的 drop-down 中显示的值将是 'Open' 和 'Closed',但这些不是该字段的实际值。您的 mark_as 字段是一个 BooleanField,因此它只能具有值 True 或 False。我很惊讶你没有得到错误而不是在 HTML.

中输出空白

试试这个:

def dashboard(request):
    
    total_issues = Issue.objects.all().count()
    open_issues = Issue.objects.filter(mark_as=True).count()     # CHANGED
    closed_issues = Issue.objects.filter(mark_as=False).count()  # CHANGED

    context = {'ordered_issues': ordered_issues, 
               'total_issues': total_issues, 
               'open_issues': open_issues,
               'closed_issues': closed_issues}
    return render(request, 'issues/total_issues.html', context)