有一个分区模型
class Subdivision(models.Model):
name = models.CharField('Наименование', max_length = 200)
parent = models.ForeignKey('self', null=True, blank=True)
使用查询subdivision = Subdivision.objects.all()以未排序的形式显示数据。例如,数据库包含数据:
+----+------------------------+--------+ | 编号 | 姓名 | 父母 | +----+------------------------+--------+ | 1 | 管理 | 空 | | 2 | 生产部 | 1 | | 3 | 会计 | 1 | | 4 | 生产车间 | 2 | +----+------------------------+--------+
所有这些都是这样输出的:
- 控制
- 生产部门
- 会计
- 生产设施
你需要这样(保持层次结构):
- 控制
- 生产部门
- 生产设施
- 会计
那些。首先是空字段parent分区,然后是子分区,然后是子分区的子分区,依此类推。是否可以使用 django 实现这种排序。
当然可以:
subdivision = Subdivision.objects.all().order_by('parent')order_by - 按指定字段排序。如果你在开头加上减号
.order_by('-parent'),那么它会倒序排列。我决定这样,我在模型中添加了一个字段
order。保存时,我在那里添加了一条路径之类的东西。然后我排序
Subdivision.objects.all().order_by('order')。最终:并按我的意愿输出: