我有自己的应用程序的 Django 项目。这个应用程序只有两个模型。我需要为此应用程序配置一些特定的选项,但在默认的 Django 管理面板中。
例如,我正在考虑创建一个模型:SettingsApp
并使用我的设置创建一个条目,但在管理面板中,用户可以添加其他条目或删除现有条目,并且应用程序将无法运行。怎么做?
我有自己的应用程序的 Django 项目。这个应用程序只有两个模型。我需要为此应用程序配置一些特定的选项,但在默认的 Django 管理面板中。
例如,我正在考虑创建一个模型:SettingsApp
并使用我的设置创建一个条目,但在管理面板中,用户可以添加其他条目或删除现有条目,并且应用程序将无法运行。怎么做?
这适用于我的设置模型:
class SettingsAdmin(admin.ModelAdmin):
def has_add_permission(self, request):
return False
def has_remove_permission(self, request):
return False
我建议您从此处查看应用程序django-livesettings。如文档中所述:
Django-Livesettings 是从 Satchmo 项目中分离出来的一个项目。它提供了通过管理界面配置设置的能力,而不是通过编辑 settings.py。此外,livesettings 允许您设置合理的默认值,以便您的站点无需任何更改即可完美运行。Livesettings 使用缓存来确保这对您网站的性能影响最小。
最后,如果您希望锁定您的站点并禁用设置,您可以导出您的 livesettings 并将它们存储在您的 settings.py 中。这使您可以灵活地决定各种用户如何与您的应用程序交互。
Livesettings 支持多种类型的输入选择:
- 布尔值
- 十进制
- 期间
- 漂浮
- 整数
- 正整数
- 细绳
- 长串
- 多个字符串
- 长多个字符串
- 模块值
- 密码
Livesettings 已经在 satchmo 项目中使用了很多年,并且被认为是稳定的并且可以用于生产。