55 lines
2.0 KiB
Python
55 lines
2.0 KiB
Python
from django.db import models
|
||
import markdown
|
||
from mdeditor.fields import MDTextField
|
||
|
||
# Create your models here.
|
||
|
||
class ArticleTag(models.Model):
|
||
id = models.AutoField(primary_key=True)
|
||
tag = models.CharField(max_length=120)
|
||
def __str__(self):
|
||
return self.tag
|
||
class Meta:
|
||
verbose_name = "标签"
|
||
verbose_name_plural = "标签管理"
|
||
db_table = 'ArticleTag'
|
||
|
||
class Articles(models.Model):
|
||
title = models.CharField(max_length=100,verbose_name="文章标题")
|
||
content_raw = MDTextField(verbose_name='文章内容', default='', config_name='default')
|
||
content = models.TextField(verbose_name='呈现内容', null=True, blank=True, default='')
|
||
abstract = models.TextField(verbose_name="文章摘要")
|
||
author = models.TextField(default="admin", verbose_name="文章作者")
|
||
created = models.DateTimeField(verbose_name="发布时间")
|
||
stat = models.IntegerField(default=0,verbose_name="点赞数量")
|
||
read = models.IntegerField(default=0,verbose_name="阅读数量")
|
||
tag_id = models.ForeignKey(ArticleTag, on_delete=models.SET_NULL, null=True, blank=True, verbose_name="文章标签")
|
||
|
||
def save(self, *args, **kwargs):
|
||
# 将Markdown格式 转为html,页面上显示
|
||
self.content = markdown.markdown(self.content_raw, extensions=[
|
||
'markdown.extensions.extra',
|
||
'markdown.extensions.codehilite',
|
||
'markdown.extensions.toc',
|
||
])
|
||
super(Articles, self).save(*args, **kwargs)
|
||
|
||
class Meta:
|
||
verbose_name = "文章"
|
||
verbose_name_plural = "文章管理"
|
||
db_table = "Articles"
|
||
|
||
def __str__(self):
|
||
return self.title
|
||
|
||
class ArticlesLike(models.Model):
|
||
articles_id = models.IntegerField(default=0,verbose_name="文章id")
|
||
uuid = models.CharField(max_length=100,verbose_name="点赞用户标识")
|
||
|
||
class Meta:
|
||
verbose_name = "点赞"
|
||
verbose_name_plural = "点赞管理"
|
||
db_table = "ArticlesLike"
|
||
|
||
def __str__(self):
|
||
return self.uuid |