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获取文件所在目录和文件名的方法
Jan 12 Python
纯用NumPy实现神经网络的示例代码
Oct 24 Python
Python中的集合介绍
Jan 28 Python
selenium2.0中常用的python函数汇总
Aug 05 Python
Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
Aug 07 Python
python 实现矩阵填充0的例子
Nov 29 Python
简单介绍django提供的加密算法
Dec 18 Python
python 伯努利分布详解
Feb 25 Python
Python基于os.environ从windows获取环境变量
Jun 09 Python
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
Jun 18 Python
Pytorch生成随机数Tensor的方法汇总
Sep 09 Python
python文件与路径操作神器 pathlib
Apr 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
php array_filter除去数组中的空字符元素
2020/06/21 PHP
PHP实现通用alert函数的方法
2015/03/11 PHP
PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)
2017/05/30 PHP
laravel5.4生成验证码的实例讲解
2017/08/05 PHP
javascript 写类方式之六
2009/07/05 Javascript
javascript window对象属性整理
2009/10/24 Javascript
网络图片延迟加载实现代码 超越jquery控件
2010/03/27 Javascript
JS中不为人知的五种声明Number的方式简要概述
2013/02/22 Javascript
javascript新建标签,判断键盘输入,以及判断焦点(示例代码)
2013/11/25 Javascript
javascript/jquery获取地址栏url参数的方法
2014/03/05 Javascript
jquery防止重复执行动画避免页面混乱
2014/04/22 Javascript
深入理解JavaScript系列(39):设计模式之适配器模式详解
2015/03/04 Javascript
微信小程序链接传参并跳转新页面
2016/11/29 Javascript
Vue组件之全局组件与局部组件的使用详解
2017/10/09 Javascript
Vue中使用的EventBus有生命周期
2018/07/12 Javascript
webstorm中配置Eslint的两种方式及差异比较详解
2018/10/19 Javascript
JS复杂判断的更优雅写法代码详解
2018/11/07 Javascript
如何去除富文本中的html标签及vue、react、微信小程序中的过滤器
2018/11/21 Javascript
vue实现多级菜单效果
2019/10/19 Javascript
详解利用eventemitter2实现Vue组件通信
2019/11/04 Javascript
vue keep-alive列表页缓存 详情页返回上一页不刷新,定位到之前位置
2019/11/26 Javascript
[05:09]第二届DOTA2亚洲邀请赛决赛日比赛集锦:iG 3:0 OG夺冠
2017/04/05 DOTA
python实现人人网登录示例分享
2014/01/19 Python
Python探索之pLSA实现代码
2017/10/25 Python
python批量修改图片大小的方法
2018/07/24 Python
django 微信网页授权认证api的步骤详解
2019/07/30 Python
详解如何在cmd命令窗口中搭建简单的python开发环境
2019/08/29 Python
简单了解Pandas缺失值处理方法
2019/11/16 Python
创意爱尔兰礼物:Creative Irish Gifts
2020/01/29 全球购物
党校培训自我鉴定
2014/02/01 职场文书
对党的十八届四中全会的期盼
2014/10/17 职场文书
2014年个人售房协议书
2014/10/30 职场文书
工厂门卫岗位职责
2015/04/13 职场文书
十八大观后感
2015/06/12 职场文书
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
2022/03/23 MySQL
vue代码分块和懒加载非必要资源文件
2022/04/11 Vue.js