Python 用Django制作一本书的模型

Python 用Django制作一本书的模型,python,django,django-models,Python,Django,Django Models,我试图对包含多个长部分的文章进行建模。这些部分应该可以一个接一个地访问,这样我就可以跨页面分割这些部分并创建目录。对于编辑,我希望两者都是可能的,一个接一个地编辑,并且作为一个整体。这几乎是MediaWiki长期以来所能做到的 简单地在文章的一部分添加一个外键有一些缺点。你不能对文章进行整体编辑,也没有对部分进行排序,只有Django管理员中的一个随机列表。另外,我认为它可能会对性能产生一些不良影响,因为大多数文章可能会同时作为一个整体显示,这将涉及反向的ForeignKey决议 现在你会怎么做

我试图对包含多个长部分的文章进行建模。这些部分应该可以一个接一个地访问,这样我就可以跨页面分割这些部分并创建目录。对于编辑,我希望两者都是可能的,一个接一个地编辑,并且作为一个整体。这几乎是MediaWiki长期以来所能做到的

简单地在文章的一部分添加一个外键有一些缺点。你不能对文章进行整体编辑,也没有对部分进行排序,只有Django管理员中的一个随机列表。另外,我认为它可能会对性能产生一些不良影响,因为大多数文章可能会同时作为一个整体显示,这将涉及反向的ForeignKey决议


现在你会怎么做?是否有一些库或框架可以简化这种关系?

models.py

class Article(models.Model):
    title = models.CharField(max_length=X)
    ...

class Part(models.Model):
    article = models.ForeignKey(Article)
    order = models.IntegerField()
    subtitle = models.CharField(max_length=X)
    content = models.TextField()
    ...

    class Meta:
        ordering = ('order',)
您必须在每个部分中设置顺序,每个查询将返回按此字段排序的部分

使用可以从文章的管理页面编辑文章的所有部分


不应该有性能影响:如果查询正确完成,一篇文章的所有部分(甚至多篇文章的所有部分)只需在数据库上点击一次就可以返回。阅读有关和的文档。

InlineModelAdmin的内容正是我要找的。谢谢