123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- from django.contrib import admin
- from django.contrib.auth import get_user_model as user_model
- from django.contrib.auth.models import User, AbstractUser
- from django.db import models
- from blog.admin import CommentAdmin
- User = user_model()
- class Category(models.Model):
- """
- Django 要求模型必须继承 models.Model 类。
- Category 只需要一个简单的分类名 name 就可以了。
- CharField 指定了分类名 name 的数据类型,CharField 是字符型,
- CharField 的 max_length 参数指定其最大长度,超过这个长度的分类名就不能被存入数据库。
- 然后给name设置了一个'分类'的名称
- """
- name = models.CharField('分类', max_length=100, unique=True)
- seq = models.IntegerField('排序', default=1)
- class Tags(models.Model):
- """
- 标签 Tag 也比较简单,和 Category 一样。
- 再次强调一定要继承 models.Model 类!
- """
- name = models.CharField('标签', max_length=100, unique=True)
- class FileRecord(models.Model):
- origin_name = models.CharField('源文件名称', max_length=200)
- file_name = models.CharField('文件名称', max_length=200)
- file_path = models.FilePathField('文件路径', max_length=255)
- create_date = models.DateTimeField('创建时间', auto_now_add=True)
- suffix = models.CharField('文件类型', max_length=10)
- file_net_path = models.CharField('文件网络路径', max_length=200)
- class Article(models.Model):
-
- title = models.CharField('标题', max_length=70)
-
- intro = models.TextField('摘要', max_length=200, blank=True)
- category = models.ForeignKey(Category, on_delete=models.CASCADE, verbose_name='分类', default='1')
- tags = models.ManyToManyField(Tags, blank=True)
-
- html_text = models.TextField(blank=True)
- markdown_text = models.TextField(blank=True)
-
-
-
-
- user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='作者')
-
- created_time = models.DateTimeField('发布时间', auto_now_add=True)
- type_choices = (
- (1, "ARTICLE"),
- (2, "NEWS"),
- (3, "MEDIA"))
- type = models.SmallIntegerField(verbose_name="类型", choices=type_choices, default=1)
- cover = models.ForeignKey(FileRecord, related_name="cover", on_delete=models.CASCADE, verbose_name='封面',
- default='',
- blank=True, null=True)
- music = models.ForeignKey(FileRecord, related_name="music", on_delete=models.CASCADE, verbose_name='音乐路径',
- default='', blank=True, null=True)
- status_choices = (
- (1, "RELEASE"),
- (0, "PADDING"),
- (-1, "DELETE"))
- status = models.SmallIntegerField(verbose_name="状态", choices=status_choices, default=1)
- is_top = models.BooleanField(verbose_name="是否在首页显示", default=True)
- class Comment(models.Model):
- article = models.ForeignKey(Article, on_delete=models.CASCADE, verbose_name='评论', default='1')
- nick_name = models.CharField('昵称', max_length=100)
- avatar = models.URLField('头像', max_length=255)
- website = models.URLField('网址', max_length=100)
- created_time = models.DateTimeField('创建时间', auto_now_add=True)
- email = models.EmailField('Email', null=True, blank=True)
- comment = models.TextField('评论', max_length=500, null=False, blank=False)
- admin.site.register(Comment, CommentAdmin)
- admin.site.site_title = 'CyberSick.net'
|