打造你的博客帝国:DjangoBlog带你飞向国际舞台!
from django.db import models
from django.contrib.auth.models import User
from django.urls import reverse
from django.utils.translation import gettext_lazy as _
class Post(models.Model):
STATUS_CHOICES = (
('d', 'Draft'),
('p', 'Published'),
('w', 'Withdrawn'),
)
title = models.CharField(_('title'), max_length=200, unique=True)
slug = models.SlugField(_('slug'), max_length=200, unique=True, db_index=True)
author = models.ForeignKey(User, on_delete=models.CASCADE, related_name='blog_posts')
body = models.TextField(_('body'))
status = models.CharField(_('status'), max_length=1, choices=STATUS_CHOICES, default='d')
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Meta:
ordering = ('-created_at',)
verbose_name = _('post')
verbose_name_plural = _('posts')
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('blog:post_detail', args=[self.slug])
这个代码实例展示了如何使用Django的模型来创建一个简单的博客帖子系统。它定义了帖子模型,包括标题、作者、正文内容、状态以及创建和更新时间。还包括了一个Meta类来定义默认的排序方式和国际化支持。最后,实现了__str__
方法以便于显示帖子标题,以及get_absolute_url
方法来获取帖子的详细页面URL。
评论已关闭