旅游网站建设方案2019,哪些网站需要做分享按钮,成都APP 微网站开发,长沙网络营销品牌排名文章目录0.创建admin后台管理员账号1.在 admin 后台注册模型2.汉化应用的标题3.汉化应用下各个模块的名称4.汉化应用下各个模块的属性的名称5.文章列表显示更加详细的信息6.简化新增文章的表单7.自动设置文章作者为当前用户8.设定创建时间为当前时间9.设定修改建时间为保存时的…
文章目录0.创建admin后台管理员账号1.在 admin 后台注册模型2.汉化应用的标题3.汉化应用下各个模块的名称4.汉化应用下各个模块的属性的名称5.文章列表显示更加详细的信息6.简化新增文章的表单7.自动设置文章作者为当前用户8.设定创建时间为当前时间9.设定修改建时间为保存时的时间0.创建admin后台管理员账号
运行 pipenv run python manage.py createsuperuser 并根据提示以此填入用户名邮箱密码等进行注册。
1.在 admin 后台注册模型
文件位置blog/admin.py
from django.contrib import admin
from .models import Post, Category, Tagadmin.site.register(Post)
admin.site.register(Category)
admin.site.register(Tag)运行服务器访问127.0.0.1:8000/admin/ 结果如下图中已进行汉化汉化将在接下来进行说明
2.汉化应用的标题
文件位置blog/apps.py
class BlogConfig(AppConfig):name blogverbose_name 博客文件位置setting.py
INSTALLED_APPS [django.contrib.admin,...blog.apps.BlogConfig, # 注册 blog 应用
]效果如下
3.汉化应用下各个模块的名称
文件位置blog/models.py Post 模型
class Post(models.Model):...author models.ForeignKey(User, on_deletemodels.CASCADE)class Meta:verbose_name 文章verbose_name_plural verbose_namedef __str__(self):return self.titleTag 和 Category 模型
class Category(models.Model):name models.CharField(max_length100)class Meta:verbose_name 分类verbose_name_plural verbose_namedef __str__(self):return self.nameclass Tag(models.Model):name models.CharField(max_length100)class Meta:verbose_name 标签verbose_name_plural verbose_namedef __str__(self):return self.name效果如下
4.汉化应用下各个模块的属性的名称
文件位置blog/models.py 修改 post 的表单的 label
class Post(models.Model):title models.CharField(标题, max_length70)body models.TextField(正文)created_time models.DateTimeField(创建时间)modified_time models.DateTimeField(修改时间)excerpt models.CharField(摘要, max_length200, blankTrue)category models.ForeignKey(Category, verbose_name分类, on_deletemodels.CASCADE)tags models.ManyToManyField(Tag, verbose_name标签, blankTrue)author models.ForeignKey(User, verbose_name作者, on_deletemodels.CASCADE)效果如下
5.文章列表显示更加详细的信息
文件位置blog/admin.py
from django.contrib import admin
from .models import Post, Category, Tagclass PostAdmin(admin.ModelAdmin):list_display [title, created_time, modified_time, category, author]# 把新增的 Postadmin 也注册进来
admin.site.register(Post, PostAdmin)
admin.site.register(Category)
admin.site.register(Tag)效果如下
6.简化新增文章的表单
文件位置blog/admin.py
from django.contrib import admin
from .models import Post, Category, Tagclass PostAdmin(admin.ModelAdmin):list_display [title, created_time, modified_time, category, author]fields [title, body, excerpt, category, tags]# 把新增的 Postadmin 也注册进来
admin.site.register(Post, PostAdmin)
admin.site.register(Category)
admin.site.register(Tag)效果如下
7.自动设置文章作者为当前用户
文件位置blog/admin.py
from django.contrib import admin
from .models import Post,Category,Tagclass PostAdmin(admin.ModelAdmin):list_display [title,created_time,modified_time,category,author]fields [title, body, excerpt, category, tags]def save_model(self, request, obj, form, change):obj.author request.usersuper().save_model(request, obj, form, change)admin.site.register(Post, PostAdmin)
admin.site.register(Category)
admin.site.register(Tag)8.设定创建时间为当前时间
文件位置blog/models.py
from django.utils import timezoneclass Post(models.Model):...created_time models.DateTimeField(创建时间, defaulttimezone.now)...9.设定修改建时间为保存时的时间
文件位置blog/models.py
from django.utils import timezoneclass Post(models.Model):...def save(self, *args, **kwargs):self.modified_time timezone.now()super().save(*args, **kwargs)