私は自分のアプリでDjangoプロジェクトを持っています。このアプリには 2 つのモデルしかありません。このアプリに固有のいくつかのオプションを設定する必要がありますが、デフォルトの Django 管理パネルで設定します。
たとえば、モデルを作成SettingsApp
して自分の設定で 1 つのエントリを作成することを考えていましたが、管理パネルでは、ユーザーは他のエントリを追加したり、既存のエントリを削除したりでき、アプリは機能しません。どうやってするの?
私は自分のアプリでDjangoプロジェクトを持っています。このアプリには 2 つのモデルしかありません。このアプリに固有のいくつかのオプションを設定する必要がありますが、デフォルトの Django 管理パネルで設定します。
たとえば、モデルを作成SettingsApp
して自分の設定で 1 つのエントリを作成することを考えていましたが、管理パネルでは、ユーザーは他のエントリを追加したり、既存のエントリを削除したりでき、アプリは機能しません。どうやってするの?
これは私の設定モデルで機能します。
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 はキャッシュを使用して、サイトのパフォーマンスへの影響を最小限に抑えます。
最後に、サイトをロックダウンして設定を無効にしたい場合は、ライブ設定をエクスポートして、settings.py に保存できます。これにより、さまざまなユーザーがアプリを操作する方法を柔軟に決定できます。
Livesettings は、いくつかの種類の入力選択をサポートしています。
- ブール値
- 小数
- 間隔
- 浮く
- 整数
- 正の整数
- 弦
- ロングストリング
- 複数の文字列
- 長い複数の文字列
- モジュール値
- パスワード
Livesettings は satchmo プロジェクトで長年使用されており、安定しており、本番環境に対応していると見なされています。