Django Reversion 开源项目教程
1. 项目目录结构及介绍
Django Reversion 是一个用于 Django 应用程序的版本控制库,它允许你记录模型对象的更改并能够回滚到先前的任何状态。以下是一个典型 django-reversion
的基本目录结构概览:
django-revision/
|-- LICENSE.txt
|-- README.rst
|-- reversion/
| |-- __init__.py
| |-- admin.py
| |-- checks.py
| |-- forms.py
| |-- models.py # 核心模型,用来存储版本信息。
| |-- operations.py
| |-- serializers.py
| |-- signals.py
| |-- tests/
| |-- ...
| |-- utils.py
|-- setup.py # 项目安装脚本
|-- requirements.txt # 项目依赖列表
|-- tox.ini # 测试环境配置
|-- .travis.yml # Travis CI 配置
- reversion/ 目录包含了所有的源代码和相关模块,如模型(models.py)用于存储版本数据,以及各种实用函数和管理工具。
- admin.py 定义了与 Django 管理界面的集成,方便在后台查看和管理版本历史。
- models.py 中定义的核心模型是版本控制的核心,记录了每次变更的详情。
- setup.py 用于项目的打包和发布。
2. 项目的启动文件介绍
虽然 Django Reversion 本身不直接提供一个“启动文件”,其集成到你的 Django 项目中通常涉及以下几个步骤:
-
在你的 Django 项目的
requirements.txt
文件或通过pip命令添加django-reversion
作为依赖。pip install django-reversion
-
在你的 Django 项目的
settings.py
文件中添加'reversion'
到INSTALLED_APPS
列表。INSTALLED_APPS = [ # ... 'reversion', ]
-
如需立即对已有模型启用版本控制,你需要在该模型的文件中导入
register
函数并调用它。from django.db import models from reversion import register class MyModel(models.Model): # 模型字段... register(MyModel) # 启用版本控制
-
运行迁移以创建必要的数据库表。
python manage.py migrate reversion
通过以上步骤,你就可以在你的应用中管理和追踪模型的变化了。
3. 项目的配置文件介绍
Django Reversion 的主要配置是在你的 Django 项目的 settings.py
文件中完成的。尽管它不需要单独的配置文件,但提供了几个可自定义的设置项来调整其行为:
- REVERSION_ADMIN:你可以定制版本管理界面的行为。
- REVERSION_DEFAULT_VERSION_NUMBER:默认情况下,版本号是如何计算的。
- REVERSION_REVERT Signal 和其他信号处理,允许你在版本切换时执行额外的操作。
- REVERSION_IGNORE_MODELS:如果你希望某些模型不被Reversion跟踪,可以在这里列出它们。
例如,如果你想禁用对特定模型的版本控制,可以在 settings.py
添加:
REVERSION_IGNORE_MODELS = (
'myapp.MyIgnoredModel',
)
记得查阅官方文档来获取所有可用配置选项及其详细说明,确保根据项目需求进行合理配置。