使django模型字段为只读
django-readonly-field的Python项目详细描述
使django模型字段为只读。换言之,让Django 从数据库中的字段中读取,但不要尝试写入它们。可能是 如果您的字段由触发器或其他东西填充,则此选项非常有用。
要求
- postgresql仅限
- Django,很明显。v1.11+(除非另有证明)
- 在Python2.7或3.5+下运行
快速启动
安装django只读字段:
pip install django-readonly-field
在您的settings.py:
INSTALLED_APPS=[# ..."django_readonly_field",]
在希望某些字段为只读的模型中:
classSpaceship(models.Model):name=models.CharField(max_length=100)color=models.CharField(max_length=16)classReadonlyMeta:readonly=["color"]
就这样。现在,django不会尝试在数据库中写入color字段。
警告
Django不会写那些字段。结果是你的数据库 必须允许django不写入这些字段。他们也应该 可以为空,或者具有数据库默认值,或者由触发器填充,否则 你会得到一个IntegrityError。
别忘了django模型字段默认值不会成为数据库默认值。 您可能需要为此编写一个sql迁移。
运行测试
您需要一个可用的postgresql数据库来测试项目。
source <YOURVIRTUALENV>/bin/activate export DATABASE_URL=postgres://USER:PASSWORD@HOST:PORT/NAME (myenv) $ pip install -r requirements_test.txt
为特定版本运行测试
(myenv) $ python runtests.py
对所有版本运行测试(如果tox是全局安装的,则不需要 虚拟环境)
$ tox
使用项目
许多操作都记录在makefile中。有关详细信息,请使用:
$ make help
历史记录
1.0.5(2019-04-23)
- 运行Django 2.2和Python3.5、3.6和3.7的测试
1.0.4(2018-12-17)
- 放弃对Python3.4的支持
- 确认对Python 3.7的支持
- Django 1.8的跌落支架
- Django 1.9的下降支撑
- Django 1.10的跌落支架
- 确认对Django 2.0的支持
- 确认对Django 2.1的支持
1.0.3(2018-04-26)
- python 3.6支持
- 多个数据库支持
- GitHub组织已更改为“PeopleDoc”
1.0.2(2017-09-22)
- 为django 1.11添加了测试
1.0.1(2016-10-19)
- 增加了对python 3.4和当前django stable的支持
- 修复一个线程错误,该错误将使包仅可用于测试,而不可用于实际:/
1.0.0(2016-09-15)
- 第一个稳定版本
0.2.0(2016-09-14)
- 使只读(与只读)的书写合理化
- 定义的默认应用程序配置
0.1.1(2016-09-13)
- CI改进
- 代码行
0.1.0(2016-09-02)
- pypi上的第一个版本。