内容简介:编写博客的相关model。models.py将会在mysite/migrations中生成数据库变动的记录。
编写博客的相关model。
models.py
文章分类
class ArticleCategory(models.Model): '''文章分类''' name = models.CharField('分类名称', max_length=20) created_date = models.DateTimeField('创建时间', auto_now_add=True) class Meta: verbose_name = '文章分类' # 展示在后台中的名称 verbose_name_plural = verbose_name def __str__(self): return self.name
文章标签
class ArticleTag(models.Model): '''文章标签''' name = models.CharField('标签名称', max_length=20) slug = models.SlugField(default='no-slug', max_length=60, blank=True) created_date = models.DateTimeField('创建时间', auto_now_add=True) class Meta: verbose_name = '标签' verbose_name_plural = verbose_name def __str__(self): return self.name def get_absolute_url(self): return reverse('blog:tag_detail', kwargs={'tag_name': self.slug})
文章
class Article(models.Model): '''文章''' STATUS_CHOICES = ( (0, '草稿'), (1, '发表'), ) title = models.CharField('文章标题', max_length=50, null=False) content = models.TextField('文章内容', null=False) pub_date = models.DateTimeField('发布时间', auto_now_add=True) last_mod_date = models.DateTimeField('最后修改时间', auto_now_add=True) author = models.ForeignKey(User, verbose_name='作者', on_delete=models.CASCADE) status = models.IntegerField('文章状态', choices=STATUS_CHOICES, default=0) category = models.ForeignKey( ArticleCategory, verbose_name='分类', on_delete=models.CASCADE, blank=False, null=False) views = models.IntegerField('浏览量', default=0) tags = models.ManyToManyField(ArticleTag, verbose_name='标签', blank=True) # 元数据, class Meta: # 文章 排序 规则 ordering = ['-pub_date'] verbose_name = "文章" verbose_name_plural = verbose_name get_latest_by = 'id'
注册到Admin后台
from django.contrib import admin from mysite.models import (User, ArticleTag, ArticleCategory, Article) # @admin.register(User) class UserAdmin(admin.ModelAdmin): ''' 装饰器 和 函数注册是一样的效果 ''' # 设置在后台中展示的字段 list_display = ('username', 'phone', 'email', 'nickname', 'date_joined') admin.site.register(User, UserAdmin) # 以下是新增 # 文章 @admin.register(Article) class ArticleAdmin(admin.ModelAdmin): # 展示的字段 list_display = ('title', 'pub_date', 'author', 'views') # 添加文章的时候,选择标签 横排显示 filter_horizontal = ('tags',) @admin.register(ArticleTag) class ArticleTagAdmin(admin.ModelAdmin): list_display = ('name', 'created_date') # 不显示在后台 exclude = ('slug',) @admin.register(ArticleCategory) class ArticleCategoryAdmin(admin.ModelAdmin): list_display = ('name', 'created_date')
同步数据库
$ python3 manage.py makemigrations $ python3 manage.py migrate
将会在mysite/migrations中生成数据库变动的记录。
启动服务器,浏览器中输入 http://127.0.0.1/admin
,使用前面创建的超级用户登录进去。
在后台中可以管理 文章
文章分类
标签
用户
等。
首先我们在 文章分类
标签
中添加 Python 类型。
点击文章-新增,添加有一篇新博客。
以上所述就是小编给大家介绍的《3.编写博客的相关model》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。