【发布时间】:2018-09-13 00:12:10
【问题描述】:
我有一个我认为不正常的情况,但由于我是这个充满 Django 的世界的新手,所以我可能错了。
# Create your models here.
class Country(models.Model):
name = models.CharField(max_length=100)
code = models.CharField(max_length=2, default="US")
def __str__(self):
return self.name
class State(models.Model):
name = models.CharField(max_length=100)
code = models.CharField(max_length=2, default="ME")
country = models.ForeignKey(Country, on_delete=models.CASCADE)
def __str__(self):
return self.name
class City(models.Model):
name = models.CharField(max_length=100)
state = models.ForeignKey(State, on_delete=models.CASCADE)
def __str__(self):
return self.name
class ProjectSite(models.Model):
name = models.CharField(max_length=100)
city = models.ForeignKey(City, on_delete=models.PROTECT)
def __str__(self):
return self.name
以上是应用模型的子集。当我创建所有“ProjectSites”的列表时,我想按 Country-State-City 对它们进行排序,最好提前进行排序,以便我可以为上述创建动态选项卡,但我会从小处开始。
如果我尝试:
queryset = ProjectSite.objects.all()
我最终得到了 ProjectSites,但我想不出一种优雅的方式将这些信息传递给模板,只是每个城市中每个项目的子集。我想至少得到一个类似的列表:
- 国家 1
- 状态
- 城市 1
- 项目A
- 项目 B
- 城市2
- 项目 C
- 国家 2
是否有适当的方法过滤到有序区域?理想情况下,我应该有一系列选项卡,第一行国家,该国家的第二行,该州的第三个城市,下面是该城市的所有项目站点。
【问题讨论】: