khashashin / chechen_corpora

This repository contains the source code for the Chechen Language Corpora website.
https://corpora.dosham.info
5 stars 2 forks source link

As an admin, I want to view the change history of a text to keep track of all the modifications made over time. #2

Open khashashin opened 1 year ago

khashashin commented 1 year ago

DoD


Tasks

Requirements Gathering

Backend Development

Frontend Development

Version Control

Testing

khashashin commented 1 year ago

Думаю имеет смысл сохранять историю для Page, Book, Article и Diverse.

Модель Document имеет Мета класс со значением abstract = True

abstract = True - по сути создает только слепок обекта, на основе такой модели в базе данных не будет создана таблица https://docs.djangoproject.com/en/4.2/topics/db/models/#abstract-base-classes

Так же я бы посмотрел готовые решения, например: https://django-simple-history.readthedocs.io/en/latest/

Используя данную библиотеку можно было бы сохранять историю изменений не имплементируя всю логику самим. Например:

#models.py

from simple_history.models import HistoricalRecords

class Document(models.Model):
    # ...
    history = HistoricalRecords()

    def __str__(self):
        return self.title

    class Meta:
        abstract = True

class Page(models.Model):
    # ...
    history = HistoricalRecords()

Добавляя history = HistoricalRecords() в Document модель мы соответственно добавляем историю изменений ко всем моделям наследованных он Document