Python 值为True时计算django字段并显示此计数
我在Django有一个模型,里面有Python 值为True时计算django字段并显示此计数,python,django,Python,Django,我在Django有一个模型,里面有项目和任务。一个项目可以有许多任务,以下是我的模型: class Project(models.Model): project_name = models.CharField(max_length=200) is_complete = models.BooleanField(default=False) def __str__(self): return self.project_name class Task(mod
项目
和任务
。一个项目可以有许多任务,以下是我的模型:
class Project(models.Model):
project_name = models.CharField(max_length=200)
is_complete = models.BooleanField(default=False)
def __str__(self):
return self.project_name
class Task(models.Model):
project = models.ForeignKey(Project, on_delete=models.CASCADE)
task_name = models.CharField(max_length=100)
task_desc = models.TextField(max_length=600)
due_date = models.DateField('due date')
is_complete = models.BooleanField(default=False)
task_desc.short_description = "Task description"
def __str__(self):
return self.task_name
我想在项目旁边显示总任务数和总完成任务数。我已将以下内容添加到我的admin.py中,以显示每个项目的总任务数:
def project_task_count(self, obj):
return obj.task_set.count()
我怎样才能将只完成任务的计数添加到管理中,并复制这种方法在网站上显示这些计数,而不仅仅是在管理面板中
我已尝试将此添加到我的模型中,但不起作用:
def num_complete(self, obj):
return self.is_complete.count()
您可以在
项目中添加属性方法,如下所示:
class Project(models.Model):
project_name = models.CharField(max_length=200)
is_complete = models.BooleanField(default=False)
def __str__(self):
return self.project_name
@property
def num_completed(self):
self.task_set.filter(is_complete=True).count()
@admin.register(Project)
class ProjectAdmin(admin.ModelAdmin):
...
readonly_fields = ["num_completed"]
并将该属性添加到Adminsite的中,如下所示:
class Project(models.Model):
project_name = models.CharField(max_length=200)
is_complete = models.BooleanField(default=False)
def __str__(self):
return self.project_name
@property
def num_completed(self):
self.task_set.filter(is_complete=True).count()
@admin.register(Project)
class ProjectAdmin(admin.ModelAdmin):
...
readonly_fields = ["num_completed"]
您可以在项目中添加属性方法,如下所示:
class Project(models.Model):
project_name = models.CharField(max_length=200)
is_complete = models.BooleanField(default=False)
def __str__(self):
return self.project_name
@property
def num_completed(self):
self.task_set.filter(is_complete=True).count()
@admin.register(Project)
class ProjectAdmin(admin.ModelAdmin):
...
readonly_fields = ["num_completed"]
并将该属性添加到Adminsite的中,如下所示:
class Project(models.Model):
project_name = models.CharField(max_length=200)
is_complete = models.BooleanField(default=False)
def __str__(self):
return self.project_name
@property
def num_completed(self):
self.task_set.filter(is_complete=True).count()
@admin.register(Project)
class ProjectAdmin(admin.ModelAdmin):
...
readonly_fields = ["num_completed"]
如果obj是所有任务的查询集obj=Task.objects.all()
如果obj是所有已完成任务的查询集obj=task.objects.filter(is_complete=True)
如果obj是所有任务的查询集obj=Task.objects.all()
如果obj是所有已完成任务的查询集obj=task.objects.filter(is_complete=True)
谢谢,这让我回到了正轨!谢谢,这让我回到了正轨!