Computer >> Máy Tính >  >> Lập trình >> Python

Theo dõi lịch sử của đối tượng mô hình trong Django

Theo dõi lịch sử mô hình là một tính năng theo dõi những thay đổi trong đối tượng mô hình, nó theo dõi những thứ như thay đổi bạn đã thực hiện trong đó và khi bạn xóa nó. Nó cũng giúp khôi phục đối tượng bị xóa của mô hình. Trong bài viết này, chúng tôi sẽ lấy một ví dụ để xem cách theo dõi lịch sử của đối tượng mô hình trong Django.

Ví dụ

Trước hết, hãy thiết lập dự án, ứng dụng, url và mô hình của bạn.

Cài đặt django-simple-history thư viện -

pip install django-simple-history

Trong settings.py -

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

Ở đây, chúng tôi đã thêm "simple_history" mô-đun dưới dạng ứng dụng và một phần mềm trung gian.

Ở đây, chúng tôi không có nhiều việc phải làm trên urls.py views.py bởi vì công việc chính của chúng tôi sẽ là với models.py admin.py.

Trong models.py , thêm phần sau -

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()

Ở đây, chúng tôi chỉ tạo một mô hình và trường lịch sử sẽ lưu mọi thay đổi.

Trong admin.py, thêm các dòng sau -

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

admin.site.register(StudentData,SimpleHistoryAdmin)

Tại đây, chúng tôi đã đăng ký mô hình với quản trị viên theo dõi lịch sử.

Bây giờ hãy chạy các lệnh này -

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

Bây giờ bạn đã sẵn sàng. Các mã trên trong models.py sẽ lưu tất cả dữ liệu lịch sử trong trường mà bạn có thể truy cập trong views.py hoặc Django shell.

Đầu ra

Theo dõi lịch sử của đối tượng mô hình trong Django Theo dõi lịch sử của đối tượng mô hình trong Django Theo dõi lịch sử của đối tượng mô hình trong Django Theo dõi lịch sử của đối tượng mô hình trong Django

Bạn có thể truy vấn nó trong views.py hoặc Django shell.