来源:http://xieboke.net/article/100/

django admin 后台里有些输入框长度、宽度、提示语等,可能不满足我们的需求,这个时候,我们就需要对 admin 的样式进行更改。 还是先从 django 官网 找文档,发现 widget 是可以再 admin.py 里面重写的,只需要用到 django.contrib.admin.ModelAdmin.formfield_overrides(这个属性通过一种临时的方案来覆盖现有的模型中 Field (字段)类型在admin site中的显示类型。formfield_overrides 在类初始化的时候通过一个字典类型的变量来对应模型字段类型与实际重载类型的关系。)

方法一: 只改 admin.py ,缺点是 只能针对某种字段类型,不能指定字段。

# admin.py

 1 from django.contrib import admin
2 from django.forms import widgets
3 from apps.blog.models import *
4
5
6 class ArticleAdmin(admin.ModelAdmin):
7 list_display = ['id', 'thumb_shouw', 'title', 'node', 'num_views', 'show_status', 'slug', 'user']
8 list_display_links = ['id', 'thumb_shouw', 'title', 'node', 'num_views', 'user']
9 search_fields = ['title_short', 'user', 'content']
10 list_editable = ["show_status", ]
11 # style_fields = {"content": "ueditor"}
12 readonly_fields = ('slug',)
13 show_detail_fields = ['show_status', ]
14
15 # 重写 字段类型 的 widget, attrs 属性可以设置前端样式
16 formfield_overrides = {
17 models.IntegerField: {'widget': widgets.NumberInput(attrs={"style": "width:50em;", })},
18 models.CharField: {'widget': widgets.TextInput(attrs={"style": "width:50%;", "placeholder": "请输入内容"})},
19 }
20
21
22 admin.site.register(Article, ArticleAdmin)

方法二:此方法可以指定字段,而不是字段类型。 来源:https://timonweb.com/posts/override-field-widget-in-django-admin-form/

1. 首先 在 forms.py 新建一个 表单 ArticleAdminFrom # forms.py

 1 from django import forms
2 from django.forms.widgets import TextInput
3 from apps.blog.models import Article
4
5
6 class ArticleAdminForm(forms.ModelForm):
7 class Meta:
8 model = Article
9 fields = '__all__'
10 widgets = {
11 "title": TextInput(attrs={"style": "width:50%;", "placeholder": "请输入标题"}),
12 }

2. 然后在 admin.py 里面启用自定义的 ArticleAdminForm # admin.py

 1 from django.contrib import admin
2 from django.forms import widgets
3 from apps.blog.models import *
4 from apps.blog.forms import ArticleAdminForm
5
6
7 class ArticleAdmin(admin.ModelAdmin):
8 form = ArticleAdminForm # 指定了表单,就不要再用 formfield_overrides 了
9
10 list_display = ['id', 'thumb_shouw', 'title', 'node', 'num_views', 'show_status', 'slug', 'user']
11 list_display_links = ['id', 'thumb_shouw', 'title', 'node', 'num_views', 'user']
12 search_fields = ['title_short', 'user', 'content']
13 list_editable = ["show_status", ]
14 # style_fields = {"content": "ueditor"}
15 readonly_fields = ('slug',)
16 show_detail_fields = ['show_status', ]
17
18 # 重写 字段类型 的 widget, attrs 属性可以设置前端样式
19 # formfield_overrides = {
20 # models.IntegerField: {'widget': widgets.NumberInput(attrs={"style": "width:50em;", })},
21 # models.CharField: {'widget': widgets.TextInput(attrs={"style": "width:50%;", "placeholder": "请输入内容"})},
22 # }
23
24
25 admin.site.register(Article, ArticleAdmin)

django admin 字段设置的更多相关文章

  1. django admin后台设置

    #encoding:utf-8 from django.contrib import admin from son10.models import * # Register your models h ...

  2. Django admin 常用方法 model 增加只读权限

    1.Django admin model 设置查看权限 Django model 默认只有增加.删除.修改权限.没有查看权限 #model class Ad_Campaing(models.Model ...

  3. django admin 设置(转载https://www.cnblogs.com/wumingxiaoyao/p/6928297.html)

    Django admin 一些有用的设置   Django自带的后台管理是Django明显特色之一,可以让我们快速便捷管理数据.后台管理可以在各个app的admin.py文件中进行控制.以下是我最近摸 ...

  4. Django admin 一些有用的设置

      Django自带的后台管理是Django明显特色之一,可以让我们快速便捷管理数据.后台管理可以在各个app的admin.py文件中进行控制.以下是我最近摸索总结出比较实用的配置.若你有什么比较好的 ...

  5. DJANGO ADMIN 一些有用的设置(转)

    DJANGO ADMIN 一些有用的设置   Django自带的后台管理是Django明显特色之一,可以让我们快速便捷管理数据.后台管理可以在各个app的admin.py文件中进行控制.以下是我最近摸 ...

  6. django admin 编辑页面(change page) 自定义字段, 展示数据

    最近遇到一个需求, 需要在django 的 admin 编辑页内展示由用户上传的进行反馈的图片, 还要支持点击查看原图, 所以需要在编辑页内自定义 img 标签及 a 标签进行图片的展示及点击跳转 i ...

  7. Django Admin 图片路径设置显示为图片(imageField显示方法设置)

    一  使用环境 开发系统: windows IDE: pycharm 数据库: msyql,navicat 编程语言: python3.7  (Windows x86-64 executable in ...

  8. django之全局默认设置查看及admin语言设置

    django之admin语言设置 admin后台管理默认使用的是英文,有时我们需要将其设置成自己的语言以方便使用管理: 将 LANGUAGE_CODE = '' 设置为欲设置的语言即可. 以下为dja ...

  9. Django admin美化插件suit应用[原创]

    前言 由于比较懒,自己弄了一个用户验证,没有自己写后台,用了django自带的user认证,并通过admin直接进行管理,但默认的admin并不漂亮,于是使用了这个django-suit插件,效果对比 ...

  10. Django admin 权威指南(一)

    版本: Django 1.10 此部分由官方文档<6.5.1 The Django admin site>翻译而来. 6.5.1.1 概览 默认情况下,使用startproject的时候, ...

随机推荐

  1. 组织炎症水平高的RA患者接受TNF拮抗剂治疗的效果更好

    组织炎症水平高的RA患者接受TNF拮抗剂治疗的效果更好van der Pouw Kraan TC, et al. Ann Rheum Dis. 2008;67(4):563-6.目的:不同患者对TNF ...

  2. 依那西普减量维持过程中RA病人自报病情复发可能预示未来放射学进展[EULAR2015_SAT0147]

    依那西普减量维持过程中RA病人自报病情复发可能预示未来放射学进展   SAT0147 SELF-REPORTED FLARES PREDICT RADIOGRAPHIC PROGRESSION IN ...

  3. 昇腾AI新技能,还能预防猪生病?

    摘要:日前,由华为与武汉伯生科技基于昇腾AI合作研发的"思符(SiFold)蛋白质结构预测平台"正式推出,并成功应用于国药集团动物保健股份有限公司的猪圆环病毒疫苗研发中. 本文分享 ...

  4. Oracle & MSSql 数据库表映射方法(dblink or other)

    一.Oracle 1.在旧库创建公共链接 命名为 bidblink create public database link bidblink connect to c##v26_xxxx IDENTI ...

  5. webapi参数接收不到特殊字符

    js前端 var uri="http://w3cschool.cc/my test.php?name=ståle&car=saab"; document.write(enc ...

  6. nodejs 后台运行 forever

    一.安装nodejs //安装必要的make以及gcc,gcc-c++编译器 yum -y install make gcc gcc-c++ //获取源码 wget http://nodejs.org ...

  7. es 6中for in与for of适用对象

    在 ES6 中提供了 for-of,可以很方便的遍历数组和类数组,但是却不能遍历对象,这是为什么,与 for-in 仅仅相差一个单词,用途也是遍历,为什么却不能使用在对象上? 查资料后得知,原来 ES ...

  8. Windows环境同时安装多个版本的Python解释器(python2和python3)

    https://blog.csdn.net/qq_21583139/article/details/125881382 出现问题: 更新pip 操作后出现,pip报错,应该是升级到最新pip版本然后和 ...

  9. 在老项目中单独引入vue.js,使用自定义指令

    传统项目,做一个表格渲染,然而数据过多,传统方式费时费力,便引入vue和elelment  ui,由于表格需要渲染的数据过多一个表格上千条,导致切换tab更新表格时缓慢,体验太差,于是做了自定义指令, ...

  10. 基于AD9361的双收双发射频FMC子卡

    FMC177-基于AD9361的双收双发射频FMC子卡 一.板卡介绍 FMC177射频模块分别包含两个接收通道与发射通道,其频率可覆盖达到70MHz~6GHz,AD9361芯片提供具有成本效益的实验平 ...