Files
server/news/models.py
T
ngfchl 777ca50328 update. 完成前端页面展示、列表和详情页
update. 调整融合主菜单与板块
update. 分离新闻模块
2026-04-01 14:17:03 +08:00

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):
name = models.CharField('模块名称', max_length=100, unique=True)
code = models.SlugField('唯一标识', max_length=50, unique=True, help_text='用于模板或URL识别,建议英文')
order = models.PositiveSmallIntegerField('排序权重', default=0)
enabled = models.BooleanField('启用状态', default=True)
class Meta:
verbose_name = '新闻模块'
verbose_name_plural = '新闻模块'
ordering = ('order', 'name')
def __str__(self):
return self.name
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}"