使Django模型字段只读
项目描述
使一些Django模型字段只读。换句话说,它允许你告诉Django从数据库中读取某些字段,但永远不要尝试写回这些字段。如果你的字段由触发器或其他内容填充,这可能很有用。
需求
仅Postgresql
Django,从4.2到5.1进行测试
使用Python,从3.8到3.12进行测试
文档
快速入门
安装Django Readonly Field
pip install django-readonly-field
在你的 settings.py
INSTALLED_APPS = [
# ...
"django_readonly_field",
]
在你想使某些字段为只读的模型中
class Spaceship(models.Model):
name = models.CharField(max_length=100)
color = models.CharField(max_length=16)
class ReadonlyMeta:
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.txt
为特定版本运行测试
(myenv) $ pytest
为所有版本运行测试(如果全局安装了tox,您不需要虚拟环境)
$ tox
致谢
此仓库曾经可在 peopledoc/django-readonly-field 找到。
用于渲染此包的工具
项目详情
下载文件
为您的平台下载文件。如果您不确定要选择哪个,请了解更多关于 安装包 的信息。
源分布
django_readonly_field-1.3.0.tar.gz (4.9 kB 查看哈希值)
构建分布
关闭
django_readonly_field-1.3.0.tar.gz的散列值
算法 | 散列值 | |
---|---|---|
SHA256 | f5ce043fa0e638a292dccceeec34be7fed103e455263544971332d14b3c3b31b |
|
MD5 | 4ba4a8a7519ef7005393524aa89d8dec |
|
BLAKE2b-256 | bd0ca4f8cac2868e06c83ceb4e00e8e50df395596e794ac54678111eafa00d57 |
关闭
django_readonly_field-1.3.0-py3-none-any.whl的散列值
算法 | 散列值 | |
---|---|---|
SHA256 | 4f83cc468937179d62a4162e39813dc453b34bea7028d12b68d01cf739f368df |
|
MD5 | 7d802bfde245486ffe698e61786b298e |
|
BLAKE2b-256 | aaa9e0cec0fff38fe2be06d41a1cff70ea561deb83ec2af73b708522f071a32e |