問題タブ [django-reversion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1986 参照

django - Django-reversion and south compatibility

Does django-reversion work well with south migrations?
Are django-reversion and south compatible?

Current versions:
- reversion - 1.2.1
- south - 0.7.1

0 投票する
2 に答える
984 参照

django - Django - Reversion and South - モデルの更新中に過去のリビジョンを更新する方法は?

MyModel インスタンスの過去のリビジョンを保持しながら、MyModel を南に更新および移行したいと考えています。

過去のリビジョンを更新することはできますか?
モデルに対するすべての種類の変更についてリビジョンを更新する必要がありますか?
どのような変更があった場合、リビジョン履歴を消去せざるを得なくなりますか?
リビジョンの更新プロセスを自動化するエレガントな方法はありますか?

0 投票する
1 に答える
446 参照

python - Django - django-reversion - 継承で機能しない

すべてのモデルに継承される管理クラスを持つ共通クラスを作成しました。私の共通管理クラスは VersionAdmin を継承しました

問題は、CommonAdmin を継承したモデル管理者が、削除されたモデル エントリを [アイテムの復元] に表示しないことです。しかし、継承を使用しなければ、うまく機能します。

0 投票する
2 に答える
1934 参照

django - django-reversion 管理者以外の ManyToMany フィールドを元に戻す

プロジェクトで django-reversion を使用しています。そして、それは 1 つのことを除いてうまく機能します: ManyToMany フィールドの以前のバージョンを取得できません。しかし、私のコードではなく、django管理者では機能します。以前のバージョンを取得するには、次のコードを使用します。

vprod = Version.objects.get_for_date(product, ondate).get_object_version().object

「製品」が製品クラスのオブジェクトであるm2mフィールドを除いて機能します。

取得できvprod.name、必要なものを返しますが、試しvprod.elements.all()てみると、要素の数が変更されていても、現在の (最後の) バージョンのみがリストに返されます。

0 投票する
1 に答える
1346 参照

python - django-reversionユーザーIDを取得する方法

モデルの履歴を提供するためにdjango-reversionを使用しています。reversionは2つのテーブル、テーブル'reversion_revision'と'reversion_version'を作成し、reversion_revisionには、最後に変更を加えたユーザーIDが格納されていることを発見しました。しかし、私はその情報を得ることができません。関数'reversion.get_for_object(Model)'を使用して特定のモデルのすべてのバージョンを取得しますが、関数はテーブル'reversion_version'に格納されている情報のみを返し、テーブルreversion_revisionのユーザーIDを取得する必要があります。ユーザーIDを取得するにはどうすればよいですか?

0 投票する
0 に答える
448 参照

mysql - django でユーザーの編集を要約するピボット テーブルのようなクエリを実行する最も効率的な方法

すべてのデータベース オブジェクトの最後の 10 個の変更をユーザーに表示したいと考えています。

モデル オブジェクトの変更履歴を追跡するために django-reversion を使用しています。また、要約ビューでこれをいくらか複製しています。復元ではオブジェクトごとに履歴リストが作成されますが、概要ビューでは変更ごとに 1 つのリストが時系列で追跡されます。この要約リストを使用してクエリを実行する方が効率的ですか?それとも、すべてのオブジェクトの最新の 10 個の編集について、すべての復帰テーブルをクエリすることができますか?

2 番目の部分:オブジェクトごとにグループ化された編集内容をユーザーに表示したい

たとえば、ユーザーが 3 つのオブジェクトをそれぞれ 10 回編集したとします。ユーザーは異なる日に各オブジェクトを編集したため、1 日目にユーザーは 3 つすべてを編集し、2 日目にユーザーはそのうちの 1 つを編集した、などです。次のような表をユーザーに表示したいと思います。

2 番目の列は最新のユーザー固有の編集で、3 番目の列は任意のユーザーによる最新の編集です。

ユーザーがオブジェクト 1 を選択できるようにして、そのオブジェクトのすべての編集内容を表示できるようにします。

このクエリをどのように構成すればよいでしょうか? 私が考えることができる最も直接的な方法は、復元テーブルまたは要約テーブルからユーザーによってフィルター処理されたオブジェクトの個別/一意のリストをクエリし、次にユーザーごとおよびオブジェクトごとに復元をクエリして、より詳細な履歴を取得することです。これで効率化できそうです。

この形式で簡単にクエリを実行できるように、変更を追跡する別の集計テーブルをユーザー別に作成することはできますか? そのタイプのテーブルをどのように構成しますか?

いくつかのコード。これを使用して、特定のオブジェクトのすべての履歴のリストを取得します。データベース オブジェクトのバージョンのリスト、編集内容、編集日、変更を行ったユーザーに関するメモが表示されます。

これを使用して、編集の簡単なリストを取得します。この要約テーブルでは、最後の 10 エントリが最新の変更 (オブジェクト、変更内容の詳細、日付、およびユーザー) です。

0 投票する
2 に答える
1823 参照

python - django-reversion制御オブジェクトの以前のバージョン

管理者以外の自分のコードで復帰履歴にアクセスするために、django-reversionドキュメントが低レベルAPIと呼ぶものを使用しています。Revisionメタデータを保存するために、を含む独自のモデルを設定してモデルを拡張しましたOneToOneField(Revision)。ここまでは順調ですね。

しかし、その参照を考えると、その直前Revisionのリビジョンにアクセスするにはどうすればよいですか?たとえば、このリビジョンと以前のリビジョンの間の変更のリストを生成するには、リストに戻って探しているバージョンを検索するよりも効率的な方法はありますか?reversion.get_for_object

0 投票する
1 に答える
3456 参照

django - Djangoの復帰では、シェルで行われたリビジョンは保存されません

最初のインストール手順を実行して初期リビジョンを作成しましたが、モデルをdjangoシェルに保存すると、新しいリビジョンは作成されません。

これは最初のリビジョンです。

ビューからモデルを更新すると、リビジョンが正常に作成されます。

私は何が欠けていますか?

models.pyファイルは次のとおりです。

post_saveデバッグ時に呼び出されないのに、レシーバーに復帰メソッドが表示されます。

私はDjangov1.4.1、復帰v1.6.2を持っています。

0 投票する
1 に答える
410 参照

python - django-reversion によって返されるフィルター結果

django チュートリアルの Polls アプリケーションでdjango-reversion の使用を開始しました。これを機能させるには、次のコードを作成するだけでした。mysite/polls/admin.py

言い換えれば、私は管理統合のみを行っています。Poll モデルに、 というフィールドを追加しましたapproved

one_object = Poll.objects.all()[1]
version_list = reversion.get_unique_for_object(one_object)

上記version_listには、 のすべてのバージョンが含まれていますone_object。があるすべてのバージョンを取得したいだけですapproved==True。次に、承認された投票のみを表示できるように、結果をビューに表示します。これをフィルタリングするにはどうすればよいですか?

0 投票する
1 に答える
1287 参照

django - モデルで変更されたすべてのフィールドをキャプチャ

私がやろうとしているのは、オブジェクトが変更された後に変更された可能性のあるすべてのフィールドの記録を取得することです。django-revisionsdjango-reversiondjango-simple-historyなどの他の django パッケージと同様に、オブジェクトが変更されたかどうかを確認する方法はたくさんありますが、すべてを示すレポートを作成できるようにしたいと考えています。 1つだけでなく、変更されたフィールド。また、オブジェクトを完全に監査できるように、フィールドが変更される前に何を表示するかについても説明します。

django-jsonfieldで json フィールドを追加することを考えていましたが、このようにするのはちょっと間違っていると感じました。あたかもそれがハックまたは汚い回避策であるかのように。これを行うためのより伝統的な方法またはより簡単な方法はありますか。