Python
 Computer >> コンピューター >  >> プログラミング >> Python

Djangoでのモデルオブジェクトの履歴追跡


モデル履歴追跡は、モデルオブジェクトの変更を追跡する機能であり、モデルオブジェクトに加えた変更や削除した日時などを追跡します。また、モデルの削除されたオブジェクトの回復にも役立ちます。この記事では、Djangoでモデルオブジェクトの履歴を追跡する方法を例として取り上げます。

まず、プロジェクト、アプリ、URL、モデルを設定します。

django-simple-historyをインストールします ライブラリ-

pip install django-simple-history

settings.py内 −

INSTALLED_APPS+=[" simple_history"]
MIDDLEWARE = [
   #other middle ware
   'simple_history.middleware.HistoryRequestMiddleware',
]

ここに"simple_history"を追加しました アプリおよびミドルウェアとしてのモジュール。

ここでは、 urls.pyで行うことはあまりありません。 およびviews.py 私たちの主な仕事はmodels.pyであるためです およびadmin.py。

models.py内 、次を追加します-

from django.db import models
from simple_history.models import HistoricalRecords

# Create your models here.
class StudentData(models.Model):
   name=models.CharField(max_length=100)
   standard=models.CharField(max_length=100)
   section=models.CharField(max_length=100)
   history = HistoricalRecords()

ここでは、すべての変更を保存するモデルと履歴フィールドを作成しただけです。

admin.py、 次の行を追加します-

from django.contrib import admin
from .models import StudentData
from simple_history.admin import SimpleHistoryAdmin

admin.site.register(StudentData,SimpleHistoryAdmin)

ここでは、モデルを履歴追跡管理者に登録しました。

次に、これらのコマンドを実行します-

python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser

これですべての設定が完了しました。 models.pyの上記のコード views.pyでアクセスできるフィールドにすべての履歴データが保存されます またはDjangoシェル。

出力

Djangoでのモデルオブジェクトの履歴追跡 Djangoでのモデルオブジェクトの履歴追跡 Djangoでのモデルオブジェクトの履歴追跡 Djangoでのモデルオブジェクトの履歴追跡

views.pyでクエリできます またはDjangoシェル。


  1. Djangoのモデルインスタンスに翻訳を追加する

    この記事では、任意のインスタンスの翻訳を作成する方法を学習します。 ID、名前、引用符、行などのデータを保存する必要がある場合があります。そのデータを異なる言語でレンダリングする必要がある場合があります。そのためには、多くのデータベース処理を行う必要がありますが、今日は、ほんの数行のセットアップで同じ結果を得る方法を紹介します。 Djangoプロジェクトとアプリを作成します。 URLを設定する INSTALLED_APPSにアプリを追加するなどの基本的な操作を行います。 モデルを作成します。ここでは、 views.py、urls.pyとはあまり関係がありません。 または任意のhtmlフ

  2. Rubyオブジェクトモデルを詳細に理解する

    ウィキペディアによると、オブジェクト指向プログラミング(OOP)は、「オブジェクト」の概念に基づくプログラミングパラダイムであり、データとコードを含めることができます。フィールド形式のデータ(多くの場合、属性またはプロパティと呼ばれます)と形式のコードです。手順の(多くの場合、メソッドとして知られています)。 Rubyは純粋なオブジェクト指向言語です。つまり、Ruby言語では、すべてがオブジェクトです。これらのオブジェクトは、文字列、数値、クラス、モジュールなどであるかどうかに関係なく、オブジェクトモデルと呼ばれるシステムで動作します。 。 Rubyはobject_idと呼ばれるメソッドを