diff --git a/README.md b/README.md index 373adcc6e3143972b8b140f001df8e5d8b78f23b..64a69164b937fcedda7eb3937048444799094162 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ DJANGO 配置管理 依托 `django-kelove-setting` 模块,可快速定制 `Django` 应用配置,并在 `Django Admin` 中统一管理应用的配置信息 -[![Django Kelove Setting Version](https://img.shields.io/badge/stable-v2.0.2-blue.svg)](https://gitee.com/itxq/django-kelove-setting) +[![Django Kelove Setting Version](https://img.shields.io/badge/stable-v2.0.3-blue.svg)](https://gitee.com/itxq/django-kelove-setting) [![Python Version](https://img.shields.io/badge/Python-3.6+-blue.svg)](https://www.python.org/) [![Django Version](https://img.shields.io/badge/Django-v3.1+-important.svg)](https://www.djangoproject.com/) [![LICENSE](https://img.shields.io/badge/license-Apache%202.0-brightgreen.svg)](https://gitee.com/itxq/django-kelove-setting/blob/master/LICENSE) diff --git a/django_kelove_setting/setting_forms.py b/django_kelove_setting/setting_forms.py index 26b224041a3656c5a1fcc1b7edbcce247467e203..6988f9d7f138d8fb0e6f73af0473c553c00444d8 100644 --- a/django_kelove_setting/setting_forms.py +++ b/django_kelove_setting/setting_forms.py @@ -169,9 +169,9 @@ class Settings(ModelForm): 获取配置 :return: """ - + cache_version = 'DJANGO_KELOVE_SETTING_CACHE_VERSION' cache_key = cls.get_cache_key() - cache_data = cache.get(cache_key) + cache_data = cache.get(key=cache_key, default=None, version=cache_version) if cache_data is not None: return cache_data data = cls.get_form_db() @@ -184,7 +184,7 @@ class Settings(ModelForm): except AttributeError: pass cache_data = {**initial_data, **data} - cache.set(cache_key, cache_data) + cache.set(key=cache_key, value=cache_data, timeout=3600 * 24 * 365, version=cache_version) return cache_data diff --git a/django_kelove_setting/utils.py b/django_kelove_setting/utils.py index cba9e0c9a567553a7fb0c0a218fd15803c5e9098..5476fc0de67aa894762b98ab44278fc2e58b18c4 100644 --- a/django_kelove_setting/utils.py +++ b/django_kelove_setting/utils.py @@ -16,17 +16,18 @@ def get_settings_form_class(form_class): :param form_class: :return: """ + default_form = None if isinstance(form_class, str): try: form = load_object(form_class) except (ModuleNotFoundError, AttributeError): - form = None + form = default_form else: form = form_class - if not issubclass(form, SettingsForm): - form = None + if (not form) or (not issubclass(form, SettingsForm)): + return default_form return form diff --git a/pyproject.toml b/pyproject.toml index 599964e47e62f28fcb4d616ed7abe3e5ce2877e2..835bd093bb5ca785fbe24f481b20c2fbc44b0a48 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [tool.poetry] name = "django-kelove-setting" -version = "2.0.2" +version = "2.0.3" description = "DJANGO 配置管理"