[解決済み] Django Admin のモデル履歴と連動させる
2022-11-11 02:06:07
質問
セットアップについて。
- 私は、ユーザーがデータベースでオブジェクトを作成し、その後戻って好きなだけそれを編集できるようにする Django アプリケーションに取り組んでいます。
- Django の管理サイトでは、管理サイトを通じてオブジェクトに加えられた変更の履歴を保持しています。
質問です。
- ユーザーがコンテンツに加えた変更の履歴を見ることができるように、管理サイトの変更履歴に私のアプリケーションをフックするにはどうしたらよいでしょうか。
どのように解決するのですか?
管理履歴は、他のDjangoアプリと同じようにただのアプリで、例外は管理サイトに特別に配置されることです。
モデルは django.contrib.admin.models.LogEntry にあります。
ユーザが変更したとき、このようにログに追加します (contrib/admin/options.py から恥ずかしげもなく盗んできました。
from django.utils.encoding import force_unicode
from django.contrib.contenttypes.models import ContentType
from django.contrib.admin.models import LogEntry, ADDITION
LogEntry.objects.log_action(
user_id = request.user.pk,
content_type_id = ContentType.objects.get_for_model(object).pk,
object_id = object.pk,
object_repr = force_unicode(object),
action_flag = ADDITION
)
ここで
object
はもちろん変更されたオブジェクトです。
今、私はDanielの答えを見て、彼に同意します、それはかなり限定的です。
私の意見では、より強力なアプローチは、彼の本でMarty Alchinからコードを使用することです。 Djangoのプロ (参照 歴史的な記録を残す の263ページ以降を参照)。アプリケーションもある django-simple-history というアプリケーションがあり、このアプローチを実装・拡張しています ( ドキュメントはこちら ).
関連
-
[解決済み】Djangoのクエリセットフィルタリングでnot equalを行うにはどうすればよいですか?
-
Djangoキャッシュの説明
-
[解決済み] Djangoの "slug "とは何ですか?
-
[解決済み] Django のモデルで on_delete は何をするのですか?
-
[解決済み] Django のカスタムフィールドで User モデルを拡張する
-
[解決済み】Djangoでnull=Trueとblank=Trueの違いは何ですか?
-
[解決済み] Django South - テーブルはすでに存在する
-
[解決済み] Djangoの動的モデルフィールド
-
[解決済み] Django でモデルのフィールドを取得する
-
[解決済み] テーブルのフィールドから異なる値を選択する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
AttributeError: 'str' オブジェクトには 'decode' という属性がありません。
-
Django の ForeignKey パラメータの使用法
-
ImproperlyConfiguredです。INSTALLED_APPS の設定を要求されたが、設定されていない
-
[解決済み] django の OneToOneField と ForeignKey の違いは何ですか?
-
[解決済み] (13: Permission denied) 上流:[nginx]に接続中。
-
[解決済み] Django-Rest-Framework のシリアライザーで Request.User を取得する方法とは?
-
[解決済み] Django のモデルで電話番号を保存する最良の方法は何ですか?
-
[解決済み] Django で null を許容するユニークなフィールド
-
[解決済み] Django が ManyToMany リレーションシップからオブジェクトを取り除く
-
[解決済み] Django admin: データベースフィールドを持たないカスタム list_display フィールドの1つでソートする方法