Как редактировать значение записи, когда открывается страница администратора Django модели - PullRequest
0 голосов
/ 05 октября 2019

В моем приложении Django у меня есть модель с IntegerField для хранения количества выполненных сегодня запросов и другое поле, в котором хранится дата последнего изменения этого поля.

class logs(models.Model):
   today_queries = models.IntegerField("today's queries", default=0, help_text="Total number of today's queries.")
   update_date = models.DateField(default=datetime.date.today)

Myпроблема заключается в том, что каждый раз, когда я открываю страницу администрирования Django для модели logs, значение today_queries извлекается и отображается (очевидно, поведение по умолчанию), но это число будет неправильным, если наступят завтра и другие дни (это должно быть0).

Как я могу отредактировать значение today_queries, как только откроется страница администратора Django для модели logs (чтобы я сравнил update_date с now и, если этоновый день, сбросьте значение today_queries)

1 Ответ

0 голосов
/ 05 октября 2019

вы можете сделать это в методе change_view вашего ModelAdmin, проверьте документы здесь -> https://docs.djangoproject.com/en/2.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin.change_view

Что-то вроде этого должно помочь:

def change_view(self, request, obj_id):
    instance = self.get_queryset(request).get(pk=obj_id)
    instance.today_queries += 1
    instance.save()
    return super(YOUR_MODELADMIN, self).change_view(request, obj_id)

Примечание: некоторые корректировки должны быть внесены в этот код:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...