Я создал два шаблона, у меня есть расширенный шаблон De user (AbsctractUser) и шаблон (Score) с полем total_score.
Из того, что я мог понять о кэше django с redis, является то, что до тех пор, пока строка не изменяется, redis сохраняет информацию в кэше.
Поле total_score будет регулярно обновляться, например, 100 раз каждые 10 минут, если оно добавляется в шаблон AbstractUser, это заставит redis регулярно обновлять кэш пользователя при каждом изменении страницы (представление), тогда как если Я создаю второй шаблон Score с отношением OnetoOne, он будет обновляться только на соответствующих двух страницах, или представление загружает модель Score.
Или я могу прямо указать поле total_score в моем абстрактном пользователе и регулярно его обновлять. Но для меня я теряю эффективность redis для модели Abstract User. Я хотел бы знать, правильны ли мои рассуждения ...
Я мог бы прочитать, что OnetoOne полезен для расширения уже существующей таблицы, но для создания нового проекта необходимо избегать OnetoOne, и добавить непосредственно поле в модели. так что я в тумане. Заранее спасибо.
Пример:
лучше для обновления Redis Cache (Score_user) Частое обновление строки Score_user:
class User(AbstractUser):
name = CharField(_("Last name of User"), blank=True, max_length=255)
forename = CharField(_("First name of User"), blank=True, max_length=255)
class Score(models.Model):
user = models.OneToOneField(User,on_delete=models.CASCADE,primary_key=True)
score_user = models.PositiveIntegerField(default=0)
VS
class User(AbstractUser):
name = CharField(_("Last name of User"), blank=True, max_length=255)
forename = CharField(_("First name of User"), blank=True, max_length=255)
score_user = models.PositiveIntegerField(default=0)