Есть 3 связанные модели: пользователи, блоги, комментарии к блогам. Соответственно поле комментарии в моделе “пользователи” - это обычный счетчик. После добавление комента в модель “комментарии к блогам” делаю += 1, но дата, когда был сделан комент, не регистрируется.
Реально ли с таким набором данных реализовать это? Если нет, то чтобы добавить?
Модель пользователя:
class AuthUser(AbstractBaseUser, PermissionsMixin): alphanumeric = RegexValidator(r'^[0-9a-zA-Z]*$', message='Only alphanumeric characters are allowed.') username = models.CharField(unique=True, max_length=33, validators=[alphanumeric]) email = models.EmailField(verbose_name='email', unique=True, max_length=255, blank=True, null=True) first_name = models.CharField(max_length=50, null=True, blank=True) second_name = models.CharField(max_length=50, null=True, blank=True) last_name = models.CharField(max_length=50, null=True, blank=True) nickname = models.CharField(max_length=33, null=True, blank=True) date_joined = models.DateTimeField(default=timezone.now()) birthday = models.DateField(null=True, blank=True) is_active = models.BooleanField(default=True, null=False) is_staff = models.BooleanField(default=False, null=False) perm_user = models.IntegerField(default=0, null=True, blank=True) # 0 - user, 1 - admin user_img = models.ImageField(upload_to='user_img', blank=False, null=False, default='user_img/default_img.jpg') user_likes = models.IntegerField(default=0, null=True, blank=True) # кол-во полученых лайков user_com = models.IntegerField(default=0, null=True, blank=True) # кол-во комментариев user_action = models.IntegerField(default=0, null=True, blank=True) # кол-во добавлений user_blogs = models.IntegerField(default=0, null=True, blank=True) # кол-во тем user_checks = models.IntegerField(default=0, null=True, blank=True) # кол-во созданных чеков user_info = models.TextField(max_length=5512, null=True, blank=True) user_vip = models.BooleanField(default=False, null=False) # для донатеров objects = AuthUserManager() USERNAME_FIELD = 'username' REQUIRED_FIELDS = ['email'] def get_full_name(self): return '%s %s %s' .format(self.last_name, self.first_name, self.second_name) def get_short_name(self): return self.username def __str__(self): return '%s %s %s' % (self.last_name, self.first_name, self.second_name) class Meta(): db_table = "Пользователи"
Модель блогов и коментов:
class blogs(models.Model): class Meta(): db_table = "Блоги,рецепты,советы" blogs_title = models.CharField(max_length=300, verbose_name="Название Блога", help_text="Название Блога") blogs_cat = models.ForeignKey(blog_cat, verbose_name="Категория") blogs_user = models.ForeignKey(AuthUser, null=True, blank=True) blogs_date = models.DateTimeField(default=timezone.now()) blogs_date_edit = models.DateTimeField(blank=True, null=True) blogs_text = models.TextField(max_length=113000, null=True, blank=True, verbose_name="Текст", help_text="Текст") blogs_like = models.IntegerField(default=0, verbose_name="Лайки", null=True, blank=True) blogs_looks = models.IntegerField(default=0, verbose_name="Просмотров", null=True, blank=True) def __str__(self): return self.blogs_title class blog_com(models.Model): class Meta(): db_table = "blog_Комментарии" blog_com_blogs = models.ForeignKey(blogs, verbose_name="Блог") blog_com_date = models.DateTimeField(default=timezone.now(), verbose_name="Дата создания") blog_com_user = models.ForeignKey(AuthUser, null=True, blank=True) blog_com_text = models.TextField(max_length=7700, null=True, blank=True, verbose_name="Текст", help_text="Текст")