Files
server/news/models.py
T

38 lines
1.4 KiB
Python

from django.db import models
from django_ckeditor_5.fields import CKEditor5Field
from common.base import BaseEntity
from users.models import User
# Create your models here.
class NewsSection(BaseEntity):
title = models.CharField('模块名称', max_length=100, unique=True)
code = models.SlugField('唯一标识', max_length=50, unique=True, help_text='用于模板或URL识别,建议英文')
order = models.PositiveSmallIntegerField('排序权重', default=0)
visible = models.BooleanField('启用状态', default=True)
class Meta:
verbose_name = '新闻模块'
verbose_name_plural = '新闻模块'
ordering = ('order', 'title')
def __str__(self):
return self.title
class News(BaseEntity):
title = models.CharField("标题", max_length=200)
section = models.ForeignKey(NewsSection, on_delete=models.CASCADE, verbose_name="所属板块")
author = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, verbose_name="作者")
content = CKEditor5Field("正文") # 需安装 django-ckeditor
cover = models.ImageField("封面图", upload_to='articles/%Y/%m/%d/', blank=True)
is_published = models.BooleanField("已发布", default=True)
class Meta:
verbose_name = "新闻管理"
verbose_name_plural = "新闻管理"
def __str__(self):
return f"{self.title} -> {self.section}"