是否有任何功能可以从 Django 的反馈模型中计算特定的选择字段?
Is there any function to count a particular choice field from feedback model in django?
class Feedback(models.Model):
customer_name = models.CharField(max_length=120)
email = models.EmailField()
Place = models.CharField(max_length=120)
Area_Type = models.ForeignKey(Product, on_delete=models.CASCADE)
Electricity = models.CharField(max_length=3, choices=[('1','Excellent'),('2','Good'),('3','Bad')])
Water_Supply = models.CharField(max_length=3, choices=[('1', 'Excellent'), ('2', 'Good'), ('3', 'Bad')])
details = models.TextField()
Satisfactory_locality = models.BooleanField()
date = models.DateField(auto_now_add=True)
- 我已经在 Django 中创建了上述模型。
- 据此我想数一数在电场方面优秀的反馈选择的数量
- 还请告知如何查看此计数。
- 请询问是否需要更多信息。
- 使用Feedback.objects时显示属性未解析,如下图
class ClubChartView(TemplateView):
template_name = 'clubs/chart.html'
def get_context_data(self, **kwargs):
context = super().get_context_data()
context["qs"] = Feedback.objects.all()
return context
这个问题已经回答了here
示例:
>>> Model.objects.count()
42
>>> Model.related_set.count()
102
>>> Model.related_set.filter(blah=42).count()
3
在 django 模型中,您可以将 属性 方法添加到模型中,您可以在其中从任何地方引用。您可以通过放置 @property
装饰器然后放置一个函数来做到这一点。
class Feedback(models.Model):
customer_name = models.CharField(max_length=120)
email = models.EmailField()
Place = models.CharField(max_length=120)
Area_Type = models.ForeignKey(Product, on_delete=models.CASCADE)
Electricity = models.CharField(max_length=3, choices=[('1','Excellent'),('2','Good'),('3','Bad')])
Water_Supply = models.CharField(max_length=3, choices=[('1', 'Excellent'), ('2', 'Good'), ('3', 'Bad')])
details = models.TextField()
Satisfactory_locality = models.BooleanField()
date = models.DateField(auto_now_add=True)
@property
def get_feedback_count(self):
return Feedback.objects.all().filter(Electricity='1').count()
要将它传递给视图,您可以将它添加到 views.py
的上下文中,如 count = Feedback.get_feedback_count()
有一种方法可以使用 with
从模板中获取它,但我现在忘记了。
class Feedback(models.Model):
customer_name = models.CharField(max_length=120)
email = models.EmailField()
Place = models.CharField(max_length=120)
Area_Type = models.ForeignKey(Product, on_delete=models.CASCADE)
Electricity = models.CharField(max_length=3, choices=[('1','Excellent'),('2','Good'),('3','Bad')])
Water_Supply = models.CharField(max_length=3, choices=[('1', 'Excellent'), ('2', 'Good'), ('3', 'Bad')])
details = models.TextField()
Satisfactory_locality = models.BooleanField()
date = models.DateField(auto_now_add=True)
- 我已经在 Django 中创建了上述模型。
- 据此我想数一数在电场方面优秀的反馈选择的数量
- 还请告知如何查看此计数。
- 请询问是否需要更多信息。
- 使用Feedback.objects时显示属性未解析,如下图
class ClubChartView(TemplateView):
template_name = 'clubs/chart.html'
def get_context_data(self, **kwargs):
context = super().get_context_data()
context["qs"] = Feedback.objects.all()
return context
这个问题已经回答了here
示例:
>>> Model.objects.count()
42
>>> Model.related_set.count()
102
>>> Model.related_set.filter(blah=42).count()
3
在 django 模型中,您可以将 属性 方法添加到模型中,您可以在其中从任何地方引用。您可以通过放置 @property
装饰器然后放置一个函数来做到这一点。
class Feedback(models.Model):
customer_name = models.CharField(max_length=120)
email = models.EmailField()
Place = models.CharField(max_length=120)
Area_Type = models.ForeignKey(Product, on_delete=models.CASCADE)
Electricity = models.CharField(max_length=3, choices=[('1','Excellent'),('2','Good'),('3','Bad')])
Water_Supply = models.CharField(max_length=3, choices=[('1', 'Excellent'), ('2', 'Good'), ('3', 'Bad')])
details = models.TextField()
Satisfactory_locality = models.BooleanField()
date = models.DateField(auto_now_add=True)
@property
def get_feedback_count(self):
return Feedback.objects.all().filter(Electricity='1').count()
要将它传递给视图,您可以将它添加到 views.py
的上下文中,如 count = Feedback.get_feedback_count()
有一种方法可以使用 with
从模板中获取它,但我现在忘记了。