Django:按计数排序的聚合的输出聚合
我正在尝试在 django 模板中输出以下数据。
国家/地区将按故事数量降序排列。 城市将按故事数量降序排列(在该国家/地区下)
Country A(# of stories)
City A (# of stories)
City B (# of stories)
Country B(# of stories)
City A (# of stories)
City B (# of stories)
我的模型如下:
# Create your models here.
class Country(models.Model):
name = models.CharField(max_length=50)
class City(models.Model):
name = models.CharField(max_length=50)
country = models.ForeignKey(Country)
class Story(models.Model):
city = models.ForeignKey(City)
country = models.ForeignKey(Country)
name = models.CharField(max_length=255)
最简单的方法是什么?
I'm trying to output the following data in my django templates.
Countries would be ordered descending by # of stories.
Cities would be ordered descending by # of stories (under that country)
Country A(# of stories)
City A (# of stories)
City B (# of stories)
Country B(# of stories)
City A (# of stories)
City B (# of stories)
My models are the following:
# Create your models here.
class Country(models.Model):
name = models.CharField(max_length=50)
class City(models.Model):
name = models.CharField(max_length=50)
country = models.ForeignKey(Country)
class Story(models.Model):
city = models.ForeignKey(City)
country = models.ForeignKey(Country)
name = models.CharField(max_length=255)
What's the easiest way to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这个解决方案对我有用。不过,您需要对其进行调整以将其传递给模板。
更新
这是将此信息发送到模板的一种方法。这涉及到使用自定义过滤器。
查看:
在您的模板中:
更新 2
模型中具有自定义方法的变体。
这可以让您避免定义过滤器。模板代码改为:
This solution worked for me. You will need to tweak it to pass it to a template though.
Update
Here is one way of sending this information to the template. This one involves the use of a custom filter.
View:
And in your template:
Update 2
Variant with a custom method in model.
This lets you avoid defining a filter. The template code changes to: