from django.db import models from account.models import User from django.utils.text import slugify from django.utils.timezone import now from product.models import SubCategoryModel class BlogCategoryModel(models.Model): title = models.CharField(max_length=200, verbose_name='عنوان') class Meta: verbose_name = 'دسته بندی بلاگ' verbose_name_plural = 'دسته بندی های بلاگ' def __str__(self): return self.title class BlogModel(models.Model): author = models.ForeignKey(User, on_delete=models.CASCADE, related_name='blogs', verbose_name='نویسنده') title = models.CharField(max_length=200, verbose_name='عنوان') slug = models.SlugField(max_length=200, unique=True, blank=True) content = models.TextField(verbose_name='محتوا') summery = models.TextField(verbose_name='خلاصه') category = models.ForeignKey(BlogCategoryModel, on_delete=models.SET_NULL, null=True, related_name='blogs', verbose_name='دسته بندی') created_at = models.DateTimeField(default=now, editable=False, verbose_name='ساخته شده در') updated_at = models.DateTimeField(auto_now=True, verbose_name='ابدیت شده در') is_published = models.BooleanField(default=False, verbose_name='انتشار در وبسایت') cover_image = models.ImageField(upload_to='blog_covers/', blank=True, verbose_name='کاور بلاگ') views = models.PositiveIntegerField(default=0, verbose_name='بازدید') meta_description = models.CharField(max_length=300, help_text='این فیلد را حتما پر کنید', verbose_name='متا دیسکریپشن') meta_keywords = models.CharField(max_length=300, help_text='این فیلد را حتما پر کنید', verbose_name='متا کیورد') def save(self, *args, **kwargs): if not self.slug: self.slug = slugify(self.title) super().save(*args, **kwargs) def __str__(self): return self.title class Meta: verbose_name = 'بلاگ' verbose_name_plural = 'بلاگ ها' # class Comment(models.Model): # blog = models.ForeignKey(Blog, on_delete=models.CASCADE, related_name='comments') # user = models.ForeignKey(User, on_delete=models.CASCADE) # content = models.TextField() # created_at = models.DateTimeField(default=now) # def __str__(self): # return f'Comment by {self.user} on {self.blog}'