@Antigo_ptz

Django абстрактная модель?

Для всех моделей системы создал абстрактную модель, в которой хранится дата последнего изменения записи
class CommonInfo(models.Model):
    last_modified_date = models.DateTimeField(auto_now=True)

    class Meta:
        abstract = True

Вопрос в том, что мне нужно в эту абстрактную модель добавить поле, в котором нужно хранить имя пользователя last_modified_user и при каждом сохранении любой сущности в это поле подставлялся пользователь. Есть у кого идеи, как это можно сделать?
  • Вопрос задан
  • 672 просмотра
Решения вопроса 1
un1t
@un1t
Не пробовал такого делать, но общая идея такая:
Можно с помощю middleware записывать текщий request в переменную потока (thread local). (Например https://github.com/nebstrebor/django-threadlocals)
Тогда можно будет из модели добраться до текущего юзера.
В абстрактной модели определить метод save который будет записывать атрибут user.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@IKMOL
Как вариант отслеживайте сигналы.
@receiver(post_save, sender=ModelName)
def funcname(sender, instance, **kwargs):
    #код обработки
    pass
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы