Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 如何在应用程序中声明以后通常可以覆盖的设置?_Django - Fatal编程技术网

Django 如何在应用程序中声明以后通常可以覆盖的设置?

Django 如何在应用程序中声明以后通常可以覆盖的设置?,django,Django,我正在编写一个可重用的django应用程序,我想设置一些设置,比如在应用程序文件夹中的settings.py文件中,稍后其他开发人员可以在settings.py文件中覆盖这些设置。有没有一种特殊的方式,python zen方式来实现这一点,而不是上述的方式 例如,在my settings.py中,分页元素将是 default_pagination_elements = 9 但是我希望应用程序的用户能够在他们的设置中覆盖它。py 实现这一目标的最佳方式是什么 非常感谢允许用户为设置提供自己的值的

我正在编写一个可重用的django应用程序,我想设置一些设置,比如在应用程序文件夹中的settings.py文件中,稍后其他开发人员可以在settings.py文件中覆盖这些设置。有没有一种特殊的方式,python zen方式来实现这一点,而不是上述的方式

例如,在my settings.py中,分页元素将是

default_pagination_elements = 9
但是我希望应用程序的用户能够在他们的设置中覆盖它。py

实现这一目标的最佳方式是什么


非常感谢

允许用户为设置提供自己的值的一种方法是使用
getattr
并提供默认值

from django.conf import settings
my_setting = getattr(settings, 'MY_SETTING', 'default')
这样,如果用户尚未定义设置,您仍将获得默认值

from django.conf import settings
my_setting = getattr(settings, 'MY_SETTING', 'default')
对于您的情况:

default_pagination_elements = getattr(settings, 'DEFAULT_PAGINATION_ELEMENTS', 9)