diff options
Diffstat (limited to 'apps/blog/models.py')
| -rw-r--r-- | apps/blog/models.py | 42 |
1 files changed, 27 insertions, 15 deletions
diff --git a/apps/blog/models.py b/apps/blog/models.py index f564cd75..b4d791e2 100644 --- a/apps/blog/models.py +++ b/apps/blog/models.py @@ -4,63 +4,74 @@ from django.conf import settings from django.db import models from django.utils.text import slugify -UPLOAD_ROOT = 'images/' +UPLOAD_ROOT = "images/" + # Create your models here. class Category(models.Model): name = models.CharField(max_length=50) + name_ja = models.CharField(max_length=50, blank=True) slug = models.SlugField(unique=True) description = models.TextField(blank=True) created_at = models.DateTimeField(auto_now_add=True) def save(self, *args, **kwargs): - if not self.slug or self.slug == '': + if not self.slug or self.slug == "": self.slug = slugify(self.name) return super(Category, self).save(*args, **kwargs) def __str__(self): return self.name + class Tag(models.Model): name = models.CharField(max_length=50) + name_ja = models.CharField(max_length=50, blank=True) slug = models.SlugField(unique=True) description = models.TextField(blank=True) created_at = models.DateTimeField(auto_now_add=True) def save(self, *args, **kwargs): - if not self.slug or self.slug == '': + if not self.slug or self.slug == "": self.slug = slugify(self.name) return super(Tag, self).save(*args, **kwargs) def __str__(self): return self.name + class Post(models.Model): title = models.CharField(max_length=100) + title_ja = models.CharField(max_length=100, blank=True) slug = models.SlugField(max_length=100, unique=True) body = models.TextField(blank=True) + body_ja = models.TextField(blank=True) date = models.DateTimeField(auto_now_add=False) - post_image = models.ImageField(upload_to="{}/cover_images".format(UPLOAD_ROOT), blank=True) + post_image = models.ImageField( + upload_to="{}/cover_images".format(UPLOAD_ROOT), blank=True + ) + image_url = models.URLField(blank=True) author = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete=models.CASCADE, ) category = models.ForeignKey( - 'Category', + "Category", on_delete=models.CASCADE, ) - tags = models.ManyToManyField('Tag', blank=True) + tags = models.ManyToManyField("Tag", blank=True) is_public = models.BooleanField(default=False) views = models.IntegerField(default=0) def save(self, *args, **kwargs): - if not self.slug or self.slug == '': + if not self.slug or self.slug == "": self.slug = slugify(self.title) return super(Post, self).save(*args, **kwargs) def __str__(self): return str(self.title) - + + class AnonymousCommentUser(models.Model): name = models.CharField(max_length=32) email = models.CharField(max_length=32) @@ -68,17 +79,18 @@ class AnonymousCommentUser(models.Model): avatar = models.CharField(max_length=128, blank=True) @classmethod - def get_or_create(cls, email, token, avatar=''): - email_hash = hashlib.md5(email.encode('utf-8')).hexdigest() - token_hash = hashlib.sha256(token.encode('utf-8')).hexdigest() + def get_or_create(cls, email, token, avatar=""): + email_hash = hashlib.md5(email.encode("utf-8")).hexdigest() + token_hash = hashlib.sha256(token.encode("utf-8")).hexdigest() return cls(email=email_hash, token=token_hash, avatar=avatar) - + def __str__(self): return self.name + "(" + self.email + ")" + class Comment(models.Model): post = models.ForeignKey( - 'Post', + "Post", on_delete=models.CASCADE, ) user = models.ForeignKey( @@ -88,7 +100,7 @@ class Comment(models.Model): null=True, ) anonymous_user = models.ForeignKey( - 'AnonymousCommentUser', + "AnonymousCommentUser", on_delete=models.CASCADE, blank=True, null=True, @@ -99,4 +111,4 @@ class Comment(models.Model): edited_at = models.DateTimeField(blank=True, null=True) def __str__(self): - return self.body[:50] + '...' if len(self.body) > 50 else self.body + return self.body[:50] + "..." if len(self.body) > 50 else self.body |
