djangoおよびdjango-restフレームワークを使用して開発されたアプリにdjango-reversionを追加する方法で、オブジェクトの履歴を取得するために以下の関数を追加しました
from django.http import HttpResponse
from reversion.models import Version
import json
def history_list(request):
history_list = Version.objects.all().order_by('-revision__date_created')
data = []
for i in history_list:
data.append({
'date_time': str(i.revision.date_created),
'user': str(i.revision.user),
'object': i.object_repr,
'type': i.content_type.name,
'comment': i.revision.comment
})
data_ser = json.dumps(data)
return HttpResponse(data_ser, content_type="application/json")
django および django-rest フレームワークを使用して開発されたアプリに django-reversion を追加する方法の urls.py で、履歴へのルートを追加しました。
127.0.0.1:8000/history にアクセスすると、json データが次のように取得されます。
[{"object": "someobject", "user": "someuseruser", "type": "sometype", "comment": "Changed name.", "date_time": "2015-03-02 18:04:58.368650+00:00"}]
実行フロー: 127.0.0.1:8000/admin にアクセスし、上記のオブジェクトの値を「otherobject」に変更すると。127.0.0.1:8000/history を更新すると。もう1つのjsonフィールドを取得します
[{"object": "otherobject", "user": "someuseruser", "type": "sometype", "comment": "Changed name.", "date_time": "2015-03-02 18:04:58.368650+00:00"}]
以下は、履歴関数にもう1つのフィールドを追加するために行き詰まった領域です。
ヒストリー関数の上記の反復にもう 1 つのフィールドを含めたいと思います。名前を変更した後でも変更前のオブジェクト名を取得するには、 previous_object: " " のようにします。例:- 127.0.0.1:8000/admin から オブジェクト名を「apple」から「orange」に変更しました。
履歴ルートにアクセスすると 127.0.0.1:8000/history
[{"object": "apple", "object_before_changed": ""null": "someuseruser", "type": "sometype", "comment": "Changed name.", "date_time": "2015-03-02 18:00:58.368650+00:00"}]
私は以下のように見ることができるはずです
[{"object": "orange", "object before_changed": ""apple": "someuseruser", "type": "sometype", "comment": "Changed name.", "date_time": "2015-03-02 18:04:58.368650+00:00"}]