blogs下编辑models.py,包括博客分类类目、博客分类标签、博客文章
创建BlogCategory、BlogTag、Article
from django.contrib.auth import get_user_model from django.db import models from django.utils import timezone User = get_user_model() class BlogCategory(models.Model): """ 博客分类类目 """ name = models.CharField(max_length=30, verbose_name='类别名', help_text='类别名') add_time = models.DateTimeField(default=timezone.now, verbose_name='添加时间') class Meta: verbose_name = '博客类别' verbose_name_plural = verbose_name ordering = ('add_time',) def __str__(self): return self.name class BlogTag(models.Model): """ 博客分类标签 """ name = models.CharField(max_length=25, verbose_name='标签名称') add_time = models.DateTimeField(default=timezone.now, verbose_name='添加时间') class Meta: verbose_name = '博客标签' verbose_name_plural = verbose_name ordering = ('add_time',) def __str__(self): return self.name class Article(models.Model): """博客文章""" category = models.ForeignKey(BlogCategory, verbose_name="文章类别", null=True, on_delete=models.SET_NULL) tags = models.ManyToManyField(BlogTag, blank=True, verbose_name="文章标签") #标签多对多关系 user = models.ForeignKey(User, verbose_name='文章作者', on_delete=models.CASCADE) title = models.CharField(max_length=150, verbose_name='文章标题') brief = models.CharField(max_length=255, verbose_name='文章摘要', default='这篇文章没有摘要', blank=True) cover = models.ImageField(upload_to='blogs/articles/covers/', verbose_name='文章封面', max_length=255, null=True, blank=True) content = models.TextField(verbose_name='文章内容') click_num = models.IntegerField(verbose_name='点击量', default=0) favor_num = models.IntegerField(verbose_name='收藏量', default=0) comment_num = models.IntegerField(verbose_name='评论量', default=0) add_time = models.DateTimeField(default=timezone.now, verbose_name='添加时间') def __str__(self): return self.title class Meta: verbose_name = '博客文章' verbose_name_plural = verbose_name ordering = ('add_time',)
知识点
使用get_user_model
因为settings.py已经配了AUTH_USER_MODEL,所以直接调用get_user_model()方法更加灵活,代替
from users.models import UserProfilefrom
category外键使用on_delete=models.SET_NULL含义
当category外键被删除,此字段自动默认设置为空
版权声明:如无特殊说明,文章均为本站原创,转载请注明出处
本文链接:http://example.com/article/django-blogs/