简单的django可重用应用程序,用于将项目设置存储在数据库中。
项目描述
Django可重用应用程序,用于将全局项目设置存储在数据库中。
项目设置指的是像管理员邮件、一些默认值(如默认帖子限制)等。根据类型验证值。从1.3版本开始,您可以注册自己的设置值。
支持版本
Python: 2.6, 2.7(Python 2.6需要importlib)
Django: 1.3, 1.4, 1.5
API
重要:从版本1.3开始更改,旧API仍然工作,但与它不工作缓存。
import django_settings
# getting values
# this will raise django_settings.models.Setting.DoesNotExist
# exception if value not exists
# if value is not in cache it will be cached
django_settings.get('post_limit')
# if you not sure value exists you can pass "default" parameter,
# at this point default is NOT cached
django_settings.get('post_limit', default=10)
# set values - cache is updated for "get" and "exists" method
# values are validated using setting_value model clean_fields method
django_settings.set('Email', 'admin_email', 'admin@admin.com')
# If you want to avoid validation, do this:
django_settings.set('Email', 'admin_email', 'admin@admin.com', validate=False)
# checking if value exists
django_settings.exists('admin_email')
# getting all values as a dict
django_settings.all()
安装和设置
使用pip安装它
$> pip install django-settings
将“django_settings”添加到您的INSTALLED_APPS
INSTALLED_APPS = (
'django.contrib.contenttypes', # contenttypes framework is required
# ...
'django_settings',
# ...
)
如果您想添加自己的设置模型,请将它们添加到您的应用程序模型文件中,并使用django_settings API进行注册
# <project>/<app>/models.py
from django.db import models
# ... your application models
import django_settings
class Text(django_settings.db.Model):
value = models.TextField()
class Meta:
abstract = True # it's IMPORTANT - it need to be abstract
django_settings.register(Text)
请记住将模型定义为抽象的,这是非常重要的,因为Django对待模型类的方式。
可以通过项目settings.py文件设置一些默认值。这些设置将仅在它们尚未存在于数据库中时设置。
DJANGO_SETTINGS = {
'application_limit': ('Integer', 2),
'admin_email': ('String', 'admin@mail.com'),
}
使用以下命令将DJANGO_SETTINGS导入数据库:
./manage.py settings_initialize
默认的django-settings超时设置为1天,但可以在您的项目设置中更改。
DJANGO_SETTINGS_TIMEOUT = 60 * 60 * 10 # 10 hours
超时允许您为每个设置定义缓存超时时间(以秒为单位)。在给定时间后,值将过期,并且每个值都将重新计算(在您请求给定设置时)。由于Django的默认缓存超时(5分钟):https://docs.django.ac.cn/en/dev/topics/cache/#cache-arguments
设置类型
内置设置类型:电子邮件、整数、字符串、正整数
管理员
您可以通过您的管理员界面操作设置。
变更日志
1.3.12 - 修复了post sync db设置初始化问题
初始信号已移动到模型中
1.3-11 - 修复了几个错误
“清除设置缓存”管理员操作异常已修复 [#12]
修复了管理员设置版编辑缓存更新错误
“syncdb”信号回调已修复,因此它不会在每次syncdb时重新初始化设置 [#14]
1.3-8 - 修复了DJANGO_SETTINGS_TIMEOUT问题
现在可以通过项目设置进行配置
1.3-7 - 进行了几个改进和错误修复
添加了“all”功能
管理员设置添加/编辑回调:“DataAPI._set_cache_for”错误修复。
添加了设置超时定制(默认为1天)
1.3-4 - 修复了setup.py错误
1.3-3 测试版 - python & django各种版本兼容性更改
1.3-2 测试版 - 修复了几个错误,包括处理缓存Unicode键,添加了测试
1.3-1 测试版 - 修复了admin render_change_form
1.3 测试版 - 自1.0版本以来进行了几个改进
设置名称现在需要是唯一的(向下不兼容)
从现在起,您可以使用django_settings.register函数使用自己的类型扩展设置
引入了具有缓存机制的新API
改进了管理界面,添加了仅用于该包的清除缓存键的操作
为核心功能添加了一些测试。
向下不兼容的更改
django_settings.models.Setting的名称现在需要是唯一的,但是1.3版本仍然允许它不是唯一的。只需将应用设置DJANGO_SETTINGS_UNIQUE_NAMES设置为False(默认为True)即可。
贡献者
项目详情
django-settings-1.3.12.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8a7c01bd628291746d5fd57c6f1beeb5c0f1ce784cccccf2ddae989e5f69126d |
|
MD5 | 44083b05464de9f6ab1b12505da1bb69 |
|
BLAKE2b-256 | 4f6d8dcb21145af6ae3b3f8433b18b52d4be9833078b918f76190ce0562d4120 |