[解決済み] Django の管理画面で読み取り専用モデル?
2023-03-10 10:45:41
質問
管理画面でモデルを完全に読み取り専用にするにはどうしたらよいでしょうか。ログテーブルのようなもので、検索、ソート、フィルタなどのために管理機能を使用していますが、ログを変更する必要はありません。
これが重複しているように見える場合に備えて、以下は ではなく でないものです。
- 私は、読み取り専用の フィールド (すべてのフィールドを読み取り専用にしても、新しいレコードを作成することはできます)
- 私は、読み取り専用の ユーザー : すべてのユーザは読み取り専用であるべきです。
どのように解決するのですか?
参照 https://djangosnippets.org/snippets/10539/
class ReadOnlyAdminMixin(object):
"""Disables all editing capabilities."""
change_form_template = "admin/view.html"
def __init__(self, *args, **kwargs):
super(ReadOnlyAdminMixin, self).__init__(*args, **kwargs)
self.readonly_fields = [f.name for f in self.model._meta.get_fields()]
def get_actions(self, request):
actions = super(ReadOnlyAdminMixin, self).get_actions(request)
del_action = "delete_selected"
if del_action in actions:
del actions[del_action]
return actions
def has_add_permission(self, request):
return False
def has_delete_permission(self, request, obj=None):
return False
def save_model(self, request, obj, form, change):
pass
def delete_model(self, request, obj):
pass
def save_related(self, request, form, formsets, change):
pass
テンプレート/admin/view.html
{% extends "admin/change_form.html" %}
{% load i18n %}
{% block submit_buttons_bottom %}
<div class="submit-row">
<a href="../">{% blocktrans %}Back to list{% endblocktrans %}</a>
</div>
{% endblock %}
templates/admin/view.html (Grappelli用)
{% extends "admin/change_form.html" %}
{% load i18n %}
{% block submit_buttons_bottom %}
<footer class="grp-module grp-submit-row grp-fixed-footer">
<header style="display:none"><h1>{% trans "submit options"|capfirst context "heading" %}</h1></header>
<ul>
<li><a href="../" class="grp-button grp-default">{% blocktrans %}Back to list{% endblocktrans %}</a></li>
</ul>
</footer>
{% endblock %}
関連
-
django request.data を修正する AttributeError: 属性を設定できない
-
AttributeError: 'str' オブジェクトには 'decode' という属性がありません。
-
[解決済み] C#のconstとreadonlyの違いは何ですか?
-
[解決済み] Django のモデルで on_delete は何をするのですか?
-
[解決済み] pipと要件ファイルを使って、特定のパッケージをアップグレードするにはどうすればよいですか?
-
[解決済み] Django の管理者パスワードをリセットする方法は?
-
[解決済み] Django のフォームで、あるフィールドを編集できないように readonly (または disabled) にするにはどうしたらいいですか?
-
[解決済み] シグナルハンドラは django プロジェクトのどこにあるべきですか?
-
[解決済み] 学習に適したオープンソースのdjangoプロジェクト【非公開
-
[解決済み] Djangoで異なる設定でUnitテストを行うには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
django のクエリセット操作
-
[解決済み] QuerySetで空白またはNULLの名前をフィルタリングする方法は?
-
[解決済み] FastCGIとDjangoを使用しているnginxのエラーログはどこで見ることができますか?
-
[解決済み】Django: モデルフィールドのリストを取得しますか?
-
[解決済み] Django South - テーブルはすでに存在する
-
[解決済み] models.pyでDjangoの設定変数を参照するには?
-
[解決済み] Django は静的ファイルの URL をビューで取得します。
-
[解決済み] Djangoで複数のfilter()を連鎖させる、これはバグ?
-
[解決済み] list_display - メソッド用のブール型アイコンです。
-
[解決済み] Django で https 接続を非 https 接続と同じように簡単にテストするには 'runserver' を使うには?