如何使用抽象模型组织 Django 项目

5 django project-organization django-models

我有几个模型:“文章、视频、博客帖子、新闻、商品”。每个都在他们自己的应用程序中。

它们基本上都是相同的模型,每个模型都有一些额外的字段。但每个共享大约 15 个字段。我正在使用抽象基类。我正在努力弄清楚我应该如何为此进行组织。我目前的设置是这样的:

apps/
    abstract_models.py
    abstract_templatetags.py
    abstract_forms.py
    articles/
        models.py
        ...
    videos/
        models.py
        ...
    blogs/
    ...
Run Code Online (Sandbox Code Playgroud)

虽然我知道这不是一个好方法,但我不确定将共享的所有信息放在哪里。我一直这样做,然后每个应用程序只是子类化 Form 或 Model 并进行本地修改。由于它们只是相对于整个画面的少量更改,我认为抽象类是要走的路,但我可能错了。

它们共享如此多的结构,但出于显而易见的原因,我希望将它们保留为单独的应用程序。但我想把它清理一下。

任何想法将不胜感激。

tho*_*mad 5

我设置了一个可以在不同项目中使用的应用程序,并将其称为tools. 在tools我有我的基本模型,我倾向于在项目中重用这些模型并在需要的地方导入它。

例如,我CreatedModifiedModeltools/models.py其中添加了创建和修改时间的字段,以及进行创建和修改的用户。

定义一次后,我可以简单地做:

from tools.models import CreatedModifiedModel    

class Widget(CreatedModifiedModel):
    # comes with my four fields automatically
Run Code Online (Sandbox Code Playgroud)

您可以创建称为单一的应用程序basecoretools然后把你所有的抽象类在那里,以帮助保持干净,并使其在未来重复使用。