|
|
|
|
@ -6,10 +6,13 @@ from uuslug import slugify
|
|
|
|
|
from django.contrib.sites.models import Site
|
|
|
|
|
from DjangoBlog.utils import cache_decorator, logger, cache
|
|
|
|
|
from django.utils.functional import cached_property
|
|
|
|
|
from django.utils.timezone import now
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class BaseModel(models.Model):
|
|
|
|
|
slug = models.SlugField(default='no-slug', max_length=60, blank=True)
|
|
|
|
|
created_time = models.DateTimeField('创建时间', default=now)
|
|
|
|
|
last_mod_time = models.DateTimeField('修改时间', default=now)
|
|
|
|
|
|
|
|
|
|
def save(self, *args, **kwargs):
|
|
|
|
|
from DjangoBlog.blog_signals import article_save_signal
|
|
|
|
|
@ -19,7 +22,7 @@ class BaseModel(models.Model):
|
|
|
|
|
super().save(*args, **kwargs)
|
|
|
|
|
# type = self.__class__.__name__
|
|
|
|
|
is_update_views = 'update_fields' in kwargs and len(kwargs['update_fields']) == 1 and kwargs['update_fields'][
|
|
|
|
|
0] == 'views'
|
|
|
|
|
0] == 'views'
|
|
|
|
|
article_save_signal.send(sender=self.__class__, is_update_views=is_update_views, id=self.id)
|
|
|
|
|
|
|
|
|
|
def get_full_url(self):
|
|
|
|
|
@ -47,8 +50,6 @@ class Article(BaseModel):
|
|
|
|
|
)
|
|
|
|
|
title = models.CharField('标题', max_length=200, unique=True)
|
|
|
|
|
body = models.TextField('正文')
|
|
|
|
|
created_time = models.DateTimeField('创建时间', auto_now_add=True)
|
|
|
|
|
last_mod_time = models.DateTimeField('修改时间', auto_now=True)
|
|
|
|
|
pub_time = models.DateTimeField('发布时间', blank=True, null=True)
|
|
|
|
|
status = models.CharField('文章状态', max_length=1, choices=STATUS_CHOICES, default='p')
|
|
|
|
|
comment_status = models.CharField('评论状态', max_length=1, choices=COMMENT_STATUS, default='o')
|
|
|
|
|
@ -124,8 +125,6 @@ class Article(BaseModel):
|
|
|
|
|
class Category(BaseModel):
|
|
|
|
|
"""文章分类"""
|
|
|
|
|
name = models.CharField('分类名', max_length=30, unique=True)
|
|
|
|
|
created_time = models.DateTimeField('创建时间', auto_now_add=True)
|
|
|
|
|
last_mod_time = models.DateTimeField('修改时间', auto_now=True)
|
|
|
|
|
parent_category = models.ForeignKey('self', verbose_name="父级分类", blank=True, null=True)
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
@ -180,8 +179,6 @@ class Category(BaseModel):
|
|
|
|
|
class Tag(BaseModel):
|
|
|
|
|
"""文章标签"""
|
|
|
|
|
name = models.CharField('标签名', max_length=30, unique=True)
|
|
|
|
|
created_time = models.DateTimeField('创建时间', auto_now_add=True)
|
|
|
|
|
last_mod_time = models.DateTimeField('修改时间', auto_now=True)
|
|
|
|
|
|
|
|
|
|
def __str__(self):
|
|
|
|
|
return self.name
|
|
|
|
|
@ -204,8 +201,8 @@ class Links(models.Model):
|
|
|
|
|
name = models.CharField('链接名称', max_length=30, unique=True)
|
|
|
|
|
link = models.URLField('链接地址')
|
|
|
|
|
sequence = models.IntegerField('排序', unique=True)
|
|
|
|
|
created_time = models.DateTimeField('创建时间', auto_now_add=True)
|
|
|
|
|
last_mod_time = models.DateTimeField('修改时间', auto_now=True)
|
|
|
|
|
created_time = models.DateTimeField('创建时间', default=now)
|
|
|
|
|
last_mod_time = models.DateTimeField('修改时间', default=now)
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
ordering = ['sequence']
|
|
|
|
|
|