Django admin.py 在修改/添加表单界面显示额外字段的方法


Posted in Python onAugust 22, 2019

问题描述:

我有个blogextra表继承自blog,现在我想在blog的admin管理change界面显示对应的blogextra字段

解决方法:

可以使用admin.py的inline内联方法

代码:

models.py

from django.db import models

# Create your models here.


class Blog(models.Model):
  Name = models.CharField(max_length=350)
  def __unicode__(self):
    return str("Name:"+self.Name)

class BlogExtra(Blog):
  NameTwo = models.CharField(max_length=350)
  NameThree = models.CharField(max_length=350)
  def __unicode__(self):
    return str("Name:"+self.Name+" NameTwo:"+self.NameTwo+" NameThree:"+self.NameThree)

admin.py

# conding = UTF-8

from django.contrib import admin

from blogs.models import *

class BlogExtraInline(admin.StackedInline):
  model = BlogExtra
  fields = ['NameTwo']  #只显示NameTwo这个字段


class BlogAdmin(admin.ModelAdmin):
  list_display = ('id', 'Name')  

  def get_form(self, request, obj=None, **args):
    defaults = {}
    if obj is not None:
      if (len(BlogExtra.objects.filter(id=obj.id)) == 1):
        self.inlines = [BlogExtraInline]    #设置内联
      else:
        self.inlines = []           #如果不是继承,就取消设置

    defaults.update(args)
    return super(BlogAdmin, self).get_form(request, obj, **defaults)


admin.site.register(Blog, BlogAdmin)

展示效果:

正常无继承的:

Django admin.py 在修改/添加表单界面显示额外字段的方法

存在继承的(显示额外字段):

Django admin.py 在修改/添加表单界面显示额外字段的方法

以上这篇Django admin.py 在修改/添加表单界面显示额外字段的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用Python编写分析Python程序性能的工具的教程
Apr 01 Python
简单的Apache+FastCGI+Django配置指南
Jul 22 Python
Python中sort和sorted函数代码解析
Jan 25 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
Oct 21 Python
PySide和PyQt加载ui文件的两种方法
Feb 27 Python
Falsk 与 Django 过滤器的使用与区别详解
Jun 04 Python
详解pytorch 0.4.0迁移指南
Jun 16 Python
Python HTMLTestRunner测试报告view按钮失效解决方案
May 25 Python
浅谈TensorFlow中读取图像数据的三种方式
Jun 30 Python
2020版Python学习路线图(附学习资料)
Sep 15 Python
python实现图片素描效果
Sep 26 Python
python 列表推导和生成器表达式的使用
Feb 01 Python
Django stark组件使用及原理详解
Aug 22 #Python
Python学习笔记之字符串和字符串方法实例详解
Aug 22 #Python
Python学习笔记之列表和成员运算符及列表相关方法详解
Aug 22 #Python
Django上线部署之IIS的配置方法
Aug 22 #Python
对python中UDP,socket的使用详解
Aug 22 #Python
python3的url编码和解码,自定义gbk、utf-8的例子
Aug 22 #Python
Python学习笔记之集合的概念和简单使用示例
Aug 22 #Python
You might like
apache php模块整合操作指南
2012/11/16 PHP
20个2014年最优秀的PHP框架回顾
2014/10/22 PHP
php使用fopen创建utf8编码文件的方法
2014/10/31 PHP
PHP中list()函数用法实例简析
2016/01/08 PHP
PHP匿名函数和use子句用法实例
2016/03/16 PHP
PHP的时间戳与具体时间转化的简单实现
2016/06/13 PHP
Laravel最佳分割路由文件(routes.php)的方式
2016/08/04 PHP
jQuery与ExtJS之选择实例分析
2010/08/19 Javascript
javascript预览上传图片发现的问题的解决方法
2010/11/25 Javascript
jQuery中验证表单提交方式及序列化表单内容的实现
2014/01/06 Javascript
通过pjax实现无刷新翻页(兼容新版jquery)
2014/01/31 Javascript
javascript制作照片墙及制作过程中出现的问题
2016/04/04 Javascript
Angular懒加载机制刷新后无法回退的快速解决方法
2016/08/30 Javascript
详解Javascript中prototype属性(推荐)
2016/09/03 Javascript
原生JS取代一些JQuery方法的简单实现
2016/09/20 Javascript
Bootstrap fileinput组件封装及使用详解
2017/03/10 Javascript
vue组件间通信子与父详解(二)
2017/11/07 Javascript
Vue精简版风格指南(推荐)
2018/01/30 Javascript
vue+webpack 打包文件 404 页面空白的解决方法
2018/02/28 Javascript
Vue实现自定义下拉菜单功能
2018/07/16 Javascript
vue中接口域名配置为全局变量的实现方法
2018/09/20 Javascript
vue 组件基础知识总结
2021/01/26 Vue.js
vue仿携程轮播图效果(滑动轮播,下方高度自适应)
2021/02/11 Vue.js
Python使用新浪微博API发送微博的例子
2014/04/10 Python
Python pyinotify日志监控系统处理日志的方法
2018/03/08 Python
如何安装多版本python python2和python3共存以及pip共存
2018/09/18 Python
使用python实现数组、链表、队列、栈的方法
2019/12/20 Python
CSS3的Border-radius轻松制作圆角
2012/12/24 HTML / CSS
浅谈HTML5 服务器推送事件(Server-sent Events)
2017/08/01 HTML / CSS
加热夹克:RAVEAN
2018/10/19 全球购物
如何获得EntityManager
2014/02/09 面试题
英文版销售经理个人求职信
2013/11/20 职场文书
大学生职业生涯规划书前言
2014/01/09 职场文书
趣味比赛活动方案
2014/02/15 职场文书
美食节策划方案
2014/05/26 职场文书
单位工作证明格式模板
2014/10/04 职场文书