djangoの管理者からいくつかの設定を変更したいと思っています。例えば、サイトのタイトルやフッタです。私はこの設定を含むモデルを持つアプリを持っているが、この設定は単一のコピーにする必要があります。何をするのが最善の方法ですか?djangoの管理者のユーザ設定
0
A
答えて
1
あなたは/フォームを保存しレンダリング@staff_member_requiredデコレータ、とビューを作成することができますビューで使用django forms
from django.contrib.admin.views.decorators import staff_member_required
...
@staff_member_required
def edit_config(request,):
saved = False
if request.method == "POST":
form = ConfigForm(request.POST)
if form.is_valid():
...
# Do saving here
saved = True
else:
form = ConfigForm()
...
context = {
'form': form,
'saved': saved,
}
return render_to_response('staff/edit_config.html', context, context_instance=RequestContext(request))
、およびテンプレートに渡します。
テンプレートで 'admin/base_site.html'を拡張すると、フォームに管理者のルック・アンド・フィールが表示されます。
{% extends 'admin/base_site.html' %}
{% load i18n adminmedia %}
{% block title %}Edit Configuration {{ block.super }} {% endblock %}
{% block extrastyle %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% admin_media_prefix %}css/forms.css" />{% endblock %}
{% block breadcrumbs %}
<div class="breadcrumbs">
<a href="/admin/">{% trans "Home" %}</a> > Edit Configuration
</div>
{% endblock %}
{% block content %}
<h1>Edit Configuration</h1>
{% if saved %}
<p class="success" style="background-color:#9F9; padding: 10px; border: 1px dotted #999;">
Settings were saved successfully!
</p>
{% endif %}
<form method="POST" action="">
{% csrf_token %}
<fieldset class="module aligned">
<h2>Configuration</h2>
<div class="description"></div>
{% for field in form %}
<div class="form-row {% if field.errors %}errors{% endif %}">
{{ field.errors }}
<div class="field-box">
{{ field.label }} : {{ field }}
{% if field.help_text %}
<p class="help">{{ field.help_text|safe }}</p>
{% endif %}
</div>
</div>
{% endfor %}
</fieldset>
<div class="submit-row">
<input type="submit" value="{% trans 'Save' %}" class="default" name="_save"/>
</div>
</form>
{% endblock %}
設定を保存するには、データベース、iniファイル、redis、...を使用できます。いくつかの一般的なバックエンドを定義し、独自のバックエンドを継承して柔軟なものにすることができます。
1
django-constanceのようなサウンドは適切です。
django-flatblocksでも構いません。
django-flatblocksは、ウェブサイトの小さな テキストブロックを処理するための簡単なアプリケーションです。 django.contrib.flatpages のように、ページ全体ではなく、サイト上で何ができるかを説明する 情報テキストのような部分だけを考えてください。
関連する問題
- 1. django管理者の設定中に管理エラー
- 2. Djangoの管理、Djangoの管理者、スーパーユーザーの欄には、ユーザのステータス記号
- 3. Django管理者:データベース管理
- 4. Django、管理者のユーザーのモデルの役割を設定
- 5. プログラムでDjangoの管理者権限を設定する
- 6. Django管理者 - カスタムインラインフォーム
- 7. Djangoのからrequest.userは、管理者と一般ユーザ
- 8. Django管理者のフィールドセット
- 9. UnicodeとDjangoの管理者
- 10. Djangoの管理者にログイン
- 11. Django管理者StackedInlineのカスタマイズ
- 12. Djangoの代替管理者
- 13. Django管理者のデフォルトブールフィルタ
- 14. カスタムビューDjangoの管理者
- 15. Django管理者の色
- 16. Djangoの管理者が
- 17. Djangoの管理者は、パスワード
- 18. Djangoカスタム管理パネルサイト設定
- 19. Djangoの管理者フィルタは、日付のためのDjangoの管理者に
- 20. Djangoのモデルフィールドは、Djangoの管理者
- 21. Django - Django管理者のページコンテンツを管理する
- 22. Django管理者用Javaアプリケーション
- 23. Django CMS 3.4.1管理者dlogo
- 24. PHPの可能性に関する質問(ユーザ、管理者/管理者)
- 25. 管理者とフロントがコードネームに設定
- 26. Django管理者のインラインモデルのカスタマイズ
- 27. Django管理者のギャラリーのプレビュー
- 28. Djangoの管理者権限へのアクセス
- 29. ctypes.windll.shell32.IsUserAdmin()は、ユーザが管理者グループ
- 30. 管理者の他のフィールドに基づいてDjango ManyToManyFieldオプションを設定する
サードパーティアプリケーションを使用したくないです。サードパーティアプリケーションなしでこれを行うことはできますか? – Gr1N
もちろん、必要なデータを保持するモデルを作成し、適切な場所にデータをレンダリングするテンプレートタグを作成することもできます。しかし、すでにこの解決策を示しているので、正確な質問/問題を明確にする必要があります。それでは、この場合、サードパーティのアプリケーションを使用しないようにするにはどうしたらよいでしょうか?フラットブロックはあなたが望むものを大部分は使いますが、すでにそれを使用している人がいるので、あなたは現時点では気づいていない問題や側面を考慮していると確信できます。少なくとも、あなた自身の解決策のためのインスピレーションを引き出すのはソースだと見ることができます。 – arie