1

我面临一个有趣的问题,我不知道这是否是一个问题,但它没有给出我需要的预期值。例如,这是我的两个模型。

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'。如何保持订单与我添加的完全相同?

4

1 回答 1

-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属性来定义中间表时。

于 2013-06-27T06:41:30.553 回答