我面临一个有趣的问题,我不知道这是否是一个问题,但它没有给出我需要的预期价值。以下是我的两个模型。
class Name(models.Model):
""" """
name = models.CharField(max_length=20)
class Dir(models.Model):
name = models.ForeignKey(Name)
children = models.ManyToManyField('Dir', null=True, blank=True, related_name="dirs")
例如,我在子项'A','B'中添加了两个目录。现在我想按照我添加的顺序取回我的两个孩子。但问题是,它是按照以下顺序提供给我的。 'B','A'。如何保持订单与我添加的完全相同?
答案 0 :(得分:-1)
您可以按关系标识符订购目录:
parent = Dir(name='parent')
parent.dirs.add(Dir(name='A'))
parent.dirs.add(Dir(name='B'))
children = Dir.dirs.all().order_by('id') # or '-id' if you need reverse order.
仅当您使用through属性来定义中间表时。