admin中的显示
class Saltstack_GroupAdmin(admin.ModelAdmin):
list_display = ['group_name','salt_minion_id'] # 这里需要注意的是,salt_minion_id是我们要在前端展示的内容,自己定义的
def salt_minion_id(self,obj):
# 这个方法就是用来对salt_minion_id这个字段做处理,把我们需要展示的前端内容截取出来。需要注意的是,方法名必须要和在list_display里面的一致,这样才可以调用。
print(obj.host_target.salt_minion_id)
return obj.host_target.salt_minion_id # host_target是我们SaltGroup表中多对多的字段,salt_minion_id是刚才我们自定义的字段,
salt_minion_id.short_description = "Minion's ID " # 对salt_minion_id这个做个简短的title。
class Inline(admin.StackedInline):
model = Setting
class MediaAdmin(admin.ModelAdmin):
search_fields = ('name',)
list_display = ('name', 'enable', 'user')
inlines = (Inline,)
### 在media表中显示setting中的设置项
展示字段是外键关联对象
对于后台model的展示,在list_display中指定好展示的字段,假如字段对应的是外键字段,在后台展示中显示的是一个object对象,我们需要展示的是外键关联的模型的名字,则在外键关联的模型类下创建__str__方法,return的就是该模型类的name,假如这个模型还有外键关联的模型,就可以在return 的时候进行字符串的拼接,然后在后台中就可以看到原来显示object的地方改成了模型的名称
model管理类
创建了model的管理类,如果什么都不指定,在class下直接pass,这样在后台admin中显示的就是一个个的数据对象。要展示数据的话还是需要指定list_fileld search_field的
更改后台中的表显示名
在源类中进行指定。
class Meta:
db_table = 'links'
verbose_name_plural = '后台显示的表名'
可以指定多个字段组成唯一的字段
unique_together = ('name','link','bank')
外键问题
外键应该是不能为空的 null=true blank=true都没用 (这是是错误的理解)
外键应该可以置空,置空就表示现在不确定,当前与之关联的表示没有关系的,有关系的采用外键,没有关系的就可以置空
--20190730
后台页面
在后台页面中可以看到最近的操作历史,一般是右侧有增删的数据历史,一般显示10条。,进入数据详情,右上方有history历史,如果在一段时间内坐过更改,那么会有历史记录
在admin中配置
# 显示的字段
list_display = ('title', 'body', 'auth', 'create_time', 'update_time')
# 搜索条件
search_fields = ('title',)
# 按字段排序 -表示降序
ordering = ('-create_time',)
# 每页显示10条
list_per_page = 10
# 可编辑字段
list_editable = ('auth',)
# 设置哪些字段可以点击进入编辑界面
list_display_links = ('title', 'body')
# 过滤器
list_filter = ('auth', 'title')
# 时间分层
date_hierarchy = 'create_time'
时间分层,以月为单位分类信息