用于分类、内容集合和导航的可插入应用程序。
dj-contentmodel的Python项目详细描述
使用django mptt和django taggit的分类法、内容集合和内容模型的样板。
功能
- 拖放式构造分类法。
- 组、分类、集合、内容和附件之间的任意关系。
- 用于显示包含或不包含集合内容的分类法的模板。
文档
dj内容模型只是django mptt和django taggit的样板。 它通过集合定义具有任意关系的层次结构。 快速启动示例是许多项目的充分起点。 dj contentmodel提供的每个抽象类都是django.db.models的后代,因此 把它们扩展为django模型。组和分类类也是 django mptt的mpttmodel类的后代,并可以相应地扩展。 其他示例dj contentmodel的抽象类可以在https://dj-contentmodel.readthedocs.org上找到。
快速启动
首先,安装DJ ContentModel:
pip install dj-contentmodel
然后,导入抽象基类。
from dj_contentmodel.models import Taxonomy, Collection, Content, Attachment
接下来,对导入的类进行子类化,以便根据需要创建分类法和内容模型。 下面的示例是最小配置。 定义的类的名称是任意的,但类之间的关系不是。
class Sitemap(Taxonomy): """Main navigation""" collections = models.ManyToManyField('Bucket', blank=True) class Meta: verbose_name = "Category" verbose_name_plural = "Categories" ... class Bucket(Collection): """Arbitrary collections to group content.""" contents = models.ManyToManyField('Page', blank=True) ... class Page(Content): ... class Report(Attachment): parents = models.ManyToManyField('Page', blank=True) ...
最后,向管理员注册您的模型。
from django.contrib import admin from mptt.admin import DraggableMPTTAdmin admin.site.register( Sitemap, DraggableMPTTAdmin, list_display=( 'tree_actions', 'indented_title',), list_display_links=( 'indented_title',),) admin.site.register(Bucket) admin.site.register(Page) admin.site.register(Report)
如果不进行迁移,则可能需要创建表。
python manage.py migrate --run-syncdb
运行测试
代码真的有用吗?现在我祈祷。 以后的迭代将是测试驱动的,包括集成和性能测试。
source <YOURVIRTUALENV>/bin/activate (myenv) $ pip install -r requirements_test.txt (myenv) $ python runtests.py
历史记录
0.1.0(2016-06-07)
- pypi上的第一个版本。