我们现在要在添加文章的时候,要选作者是谁,保存后如果还能顺便改作者,这样很不友好,能不能设计谁创建就默认作者就是他呢?而后不能在修改作者呢?
我们需要在admin.py中进行如下修改:
截图:
附代码:
在admin.py中
from django.contrib import admin
from blog.models import Blog
# Register your models here.
@admin.register(Blog)
class BlogAdmin(admin.ModelAdmin):
# list_display用于设置列表页面要显示的不同字段
list_display = ['title','author','author_name','author_last_name','author_email']
# search_fields用于设置搜索栏中要搜索的不同字段
search_fields = ['title','author__username','content']
# 默认作者,不能随便修改作者,readonly_fields表示只能读取当今设置的字段
readonly_fields = ['author']
def save_model(self, request, obj, form, change):
# 如果不是修改,那就是"新建"的时候
# change=False时代表这个记录是新建的,为True表示这个记录执行修改
if not change:
obj.author = request.user
super(BlogAdmin,self).save_model(request,obj,form,change)