我正在尝试将文档的各个部分存储在 Django 应用程序中。该模型如下所示:
class Section(models.Model):
project = models.ForeignKey(Project)
parent_section = models.ForeignKey('Section', blank=True, null=True, related_name='child_set')
predecessor_section = models.ForeignKey('Section', blank=True, null=True, related_name='predecessor_set')
name = models.CharField(max_length=100)
text = models.TextField(blank=True, null=True)
我创建了很多部分,链接它们(parent_section、predecessor_section)并通过调用它们的每个保存方法来存储它们。但是,当我保存后查看表时,parent_section_id 和 previous_section_id 未设置,即使我在保存之前附加了对象。
我认为这与某些parent_section实例没有分配id有关,因为它们的实例尚未存储,但使用手动事务无法解决问题。
对此有什么想法吗?
干杯, 最大
最佳答案
在将对象保存到 Django ORM 中之前,对象没有 ID。
所以我想说你需要 save() 对象,然后在父/子部分中引用它(并重新保存这些部分)。
但是,将 prec 和 next 作为指针存储的另一种选择是存储equence_index(间隔 10 以允许进一步插入而无需重新排序)并按此索引进行排序。
关于Django:存储分层数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3362438/