我正面臨一個有趣的問題,我不知道它是否是一個問題,但它沒有提供我需要的預期值。例如,這裏是我的兩個模型。以正確順序添加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'。如何保持訂單與我添加的完全相同?
由於Django在涉及'm2m'字段時無法保證廣告插入順序的保存,因此您必須執行'直通表'並定義其中的排序。 –
謝謝。但是,我怎麼能通過這裏使用模型和它的孩子具有相同的名稱'迪爾'?我嘗試過,但無法真正理解如何製作。 – user968677
你有試過嗎? '類DirEntry(models.Model):' '父= models.ForeignKey(DIR)' '孩子= models.ForeignKey(DIR)' '爲了= models.IntegerField()' 但至於我,帶'through'的'ManyToManyField'具有太多限制 - 例如沒有'add()','create()'方法,管理器將無法工作(我的意思是用一些過濾器重新定義'Dir.objects') - 更好地使用外鍵的中間模型。 – HighCat