django extra settings

2025-12-11 0 335

djangoextrasettings

仅使用Django Admin进行配置和管理键入的额外设置

安装

  • 运行pip install django-extra-settings
  • extra_settings添加到settings.INSTALLED_APPS
  • 运行python manage.py migrate
  • 运行python manage.py collectstatic
  • 重新启动您的应用程序服务器
  • 只需转到可以createupdatedelete设置的管理员即可。

用法

设置

所有这些设置都是可选的,如果未在settings.py中定义。

 # the name of the installed app for registering the extra settings admin.
EXTRA_SETTINGS_ADMIN_APP = \"extra_settings\" 
 # the name of the cache to use, if not found the \"default\" cache will be used.
EXTRA_SETTINGS_CACHE_NAME = \"extra_settings\" 
 # a list of settings that will be available by default, each item must contain \"name\", \"type\" and \"value\".
# check the #types section to see all the supported settings types.
EXTRA_SETTINGS_DEFAULTS = [
    {
        \"name\" : \"SETTING_NAME\" ,
        \"type\" : \"string\" ,
        \"value\" : \"Hello World\" ,
    },
    # ...
]
 # if True, settings names will be forced to honor the standard django settings format
EXTRA_SETTINGS_ENFORCE_UPPERCASE_SETTINGS = True 
 # if True, the template tag will fallback to django.conf.settings,
# very useful to retrieve conf settings such as DEBUG.
EXTRA_SETTINGS_FALLBACK_TO_CONF_SETTINGS = True 
 # the upload_to path value of settings of type \'file\'
EXTRA_SETTINGS_FILE_UPLOAD_TO = \"files\" 
 # the upload_to path value of settings of type \'image\'
EXTRA_SETTINGS_IMAGE_UPLOAD_TO = \"images\" 
 # if True, settings name prefix list filter will be shown in the admin changelist
EXTRA_SETTINGS_SHOW_NAME_PREFIX_LIST_FILTER = False 
 # if True, settings type list filter will be shown in the admin changelist
EXTRA_SETTINGS_SHOW_TYPE_LIST_FILTER = False 
 # the package name displayed in the admin
EXTRA_SETTINGS_VERBOSE_NAME = \"Settings\"

芹菜

警告

当将芹菜autodiscover_tasksforce=True一起使用时,它会触发一个激进的任务发现,该发现在完全初始化之前访问Django设置。此过早访问可防止django-extra-settings正确设置其默认配置值。更多信息在这里。

行政

您可以使用EXTRA_SETTINGS_ADMIN_APP设置在另一个安装的应用程序组中显示设置模型管理员。

您还可以通过使用多个已安装的应用程序注册设置管理员并使用queryset_processor参数过滤每个应用程序设置来具有更高级的控件。

配x如果您执行以上任一项操作,则必须为每个应用程序运行将在其管理员中显示extra_settings模型管理员的迁移(因为Django甚至为代理模型创建迁移)

管理员高级配置示例

在您的自定义应用程序photos.admin中。Admin模块:

 from extra_settings . admin import register_extra_settings_admin

register_extra_settings_admin (
    app = __name__ ,
    queryset_processor = lambda qs : qs . filter ( name__istartswith = \"PHOTOS_\" ),
    unregister_default = True ,
)

在您的自定义应用程序videos.admin模块中:

 from extra_settings . admin import register_extra_settings_admin

register_extra_settings_admin (
    app = __name__ ,
    queryset_processor = lambda qs : qs . filter ( name__istartswith = \"VIDEOS_\" ),
    unregister_default = True ,
)

默认情况下, \"extra_settings\"应用程序具有其自己的管理应用程序组。

缓存

您可以使用settings.CACHES[\"extra_settings\"]设置自定义应用程序缓存选项,否则将使用\"default\"缓存:

 CACHES = {
    # ...
    \"extra_settings\" : {
        \"BACKEND\" : \"django.core.cache.backends.locmem.LocMemCache\" ,
        \"TIMEOUT\" : 60 ,
    },
    # ...
}

默认情况下,使用\"extra_settings\"缓存,如果要使用另一个缓存,则可以使用EXTRA_SETTINGS_CACHE_NAME设置设置它。

Python

您可以以编程方式创建读取更新删除设置:

类型

这是您可能需要使用的当前支持的设置类型的列表:

  • Setting.TYPE_BOOL
  • Setting.TYPE_DATE
  • Setting.TYPE_DATETIME
  • Setting.TYPE_DECIMAL
  • Setting.TYPE_DURATION
  • Setting.TYPE_EMAIL
  • Setting.TYPE_FILE
  • Setting.TYPE_FLOAT
  • Setting.TYPE_IMAGE
  • Setting.TYPE_INT
  • Setting.TYPE_JSON
  • Setting.TYPE_STRING
  • Setting.TYPE_TEXT
  • Setting.TYPE_TIME
  • Setting.TYPE_URL

创造

 from extra_settings . models import Setting

setting_obj = Setting (
    name = \"SETTING_NAME\" ,
    value_type = Setting . TYPE_STRING ,
    value = \"django-extra-settings\" ,
)
setting_obj . save ()

 from extra_settings . models import Setting

value = Setting . get ( \"SETTING_NAME\" , default = \"django-extra-settings\" )

更新

 from extra_settings . models import Setting

setting_obj = Setting (
    name = \"SETTING_NAME\" ,
    value_type = Setting . TYPE_BOOL ,
    value = True ,
)
setting_obj . value = False
setting_obj . save ()

删除

 from extra_settings . models import Setting

Setting . objects . filter ( name = \"SETTING_NAME\" ). delete ()

验证者

您可以为每个设置定义自定义验证器:

  • 必须使用完整的Python路径来定义验证器,例如。 myapp.mymodule.my_validator
  • 验证者称为传递单个参数(设置的值),如果该值有效,则应返回True ,否则返回FalseNone a ValidationError会提高。

模板

您可以在模板中检索设置:

{% load extra_settings %}

{% get_setting \'SETTING_NAME\' default=\'django-extra-settings\' %}

测试

您可以使用extra_settings.test.override_settings在测试过程中覆盖特定的设置。

它既可以用作装饰者,又可以用作上下文管理器:

 from extra_settings . test import override_settings

# decorator
@ override_settings ( SETTING_NAME_1 = \"value for testing 1\" , SETTING_NAME_2 = \"value for testing 2\" )
def test_with_custom_settings ( self ):
    pass

# context manager
def test_with_custom_settings ( self ):
    with override_settings ( SETTING_NAME_1 = \"value for testing 1\" , SETTING_NAME_2 = \"value for testing 2\" ):
        pass 

测试

 # clone repository
git clone https://git**hub*.com/fabiocaccamo/django-extra-settings.git && cd django-extra-settings

# create virtualenv and activate it
python -m venv venv && . venv/bin/activate

# upgrade pip
python -m pip install --upgrade pip

# install requirements
pip install -r requirements.txt -r requirements-test.txt

# install pre-commit to run formatters and linters
pre-commit install --install-hooks

# run tests
tox
# or
python runtests.py
# or
python -m django test --settings \" tests.settings \" 

执照

根据MIT许可发布。


支持

  • 在Github上明星这个项目
  • 在Github上关注我
  • ?在蓝调上跟随我
  • ?在Github上赞助我

参见

  • django-admin-interface默认的admin界面可由管理员本身自定义。弹出窗口被模式代替。 ??

  • django-cache-cleaner使用管理面板或管理命令轻松清除整个缓存或单个缓存。 ?

  • django-colorfield的简单颜色字段,在管理员中具有不错的颜色挑选。 ?

  • django-maintenance-mode – 显示维护模式打开时显示503错误页面。 ?

  • django-redirects完全控制的重定向。 ↪️

  • django-treenode可能是基于树的东西的最佳抽象模型 /管理员。 ?

  • python-benedict钥匙列表/键盘支持,I/O捷径(Base64,CSV,JSON,PICKLE,PLIST,PLIST,QUERY-String,Toml,XML,Yaml)和许多实用程序。

  • python-codicefiscale编码/解码意大利财政代码 – codifica/decodifica del codice Fiscale。 ????

  • python-fontbro友好的字体操作。 ?

  • python-fsutil懒惰开发人员的文件系统实用程序。 ?‍♂️

下载源码

通过命令行克隆项目:

git clone https://github.com/fabiocaccamo/django-extra-settings.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 编程相关 django extra settings https://www.zuozi.net/34068.html

tts with rvc
上一篇: tts with rvc
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务