以正确的顺序添加ManyToManyField

时间:2013-06-27 06:31:02

标签: python django manytomanyfield

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

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

1 个答案:

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