将参数传递给 django admin 中的内联表单

2024-02-02

我有一个继承自 ModelAdmin 的管理类:

class TemplateAdmin (admin.ModelAdmin):
    inlines = (TemplateAttributeInline, CompanyAttributeInline)
    list_display = ("name", "created", "updated","departments")
    list_filter = ['companies__company']
    list_editable = ("departments",)
    search_fields = ("name", "companies__company",)
    exclude = ("companies",)
    save_as = True

我想传递一个参数给TemplateAttributeInline然后将参数传递给TemplateAttributeForm。做这个的最好方式是什么?

模板属性内联:

class TemplateAttributeInline (admin.TabularInline):
    model = TemplateAttribute
    extra = 0
    sortable_field_name = "display"
    form = TemplateAttributeForm

模板属性表单

class TemplateAttributeForm(forms.ModelForm):
    class Meta:
        model = Template
    def __init__(self,*args, **kwargs):
        super(TemplateAttributeForm, self).__init__(*args, **kwargs) 
        self.fields['attribute'].queryset = Attribute.objects.filter(#WANT TO FILTER BY THE ID OF THE COMPANY THAT OWNS THE TEMPLATE WE ARE EDITING ON THE ADMIN PAGE)

您可以创建一个返回表单类的函数:

def TemplateAttributeForm(param):

    class MyTemplateAttributeForm(forms.ModelForm):
        class Meta:
            model = Template
        def __init__(self,*args, **kwargs):
            super(TemplateAttributeForm, self).__init__(*args, **kwargs) 
            #do what ever you want with param

    return MyTemplateAttributeForm

在另一个函数中使用它来定义TemplateAttributeInline

def TemplateAttributeInline(param):

        class MyTemplateAttributeInline (admin.TabularInline):
            model = TemplateAttribute
            extra = 0
            sortable_field_name = "display"
            form = TemplateAttributeForm(param)

        return MyTemplateAttributeInline 

最后,请在您的TemplateAdmin定义:

class TemplateAdmin (admin.ModelAdmin):
    inlines = (TemplateAttributeInline(param), CompanyAttributeInline)
    ....
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将参数传递给 django admin 中的内联表单 的相关文章

随机推荐

  • 使用 MASI 距离的 NLTK 协议的低 alpha

    当我使用 MASI 作为距离函数计算 NLTK 中的一致性时 我得到的 Krippendorff alpha 值非常低 三个编码员 Inky Blinky 和 Sue 被指示根据文本的内容为两个文本 text01 和 text02 分配主题
  • 使用 Heroku、Rails 时出现 Heroku 500 错误 [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我正在尝试使用回形针将图像上传到 S3 目前它在开发中运行得很好 但是当我将它推送到 heroku 时 我得到的状态是
  • 如何使用蓝牙查找范围内的设备?

    我是 android 新手 我想开发一个应用程序 通过编程方式使用蓝牙来查找范围内的设备 如果有人有想法 请给我一些示例代码 Find The Devices in the Range by using Bluetooth programm
  • 如何使用 numpy 计算统计数据“t 检验”

    我正在寻找有关我在 python 中创建的模型的一些统计数据 我想对其生成 t 检验 但想知道是否有一种简单的方法可以使用 numpy scipy 来执行此操作 周围有什么好的解释吗 例如 我有三个相关的数据集 如下所示 55 0 55 0
  • SUMIF 的 Google Apps 脚本替代方案

    我对 JavaScript 相当陌生 希望通过制作一些简单的脚本来进步我的学习 这些脚本将帮助我自动化一些流程 我的第一个脚本是从电子表格中查找客户的预算 以便我可以计算活动是否需要暂停 到目前为止我已经得到了这个 function mai
  • 切换回packages.config - 答案澄清

    根据规则 我必须提出一个新问题 以获得对另一个问题 答案的一些澄清 这个答案是这样的 https stackoverflow com a 45964469 305916 https stackoverflow com a 45964469
  • 带有 html 内容的 bootstrap 弹出窗口

    我试图将 bootstrap popover 内容与 html 属性分开 就像对其他组件所做的那样 但我无法让它工作
  • Composer更新和Composer全局更新之间的区别

    两者有什么区别composer update and composer global update在yii2中 这与 Yii 没有直接关系 Composer 允许您全局或每个项目 默认 安装依赖项 https getcomposer org
  • 旧代码给出“未使用的参数”错误,但以前从未出现过

    我打开了一些旧的 iOS 代码 当我尝试构建它时 我收到如下代码的 未使用参数 错误 void searchBarTextDidBeginEditing UISearchBar searchBar NSLog Search Bar isn
  • C# if-null-then-null 表达式

    只是为了好奇 方便 C 提供了我所知道的两个很酷的条件表达式功能 string trimmed input null null input Trim and string trimmed input Trim 对于我经常遇到的情况 我想念另
  • 如何在 UICollectionViewCell 中舍入 UIImageView?

    在我的 UICollectionViewCell 类中我写了这个 void layoutSubviews super layoutSubviews self myImageView layer cornerRadius CGRectGetH
  • 在 Jenkins 管道中使用的 groovy 脚本中调用 shell 命令

    我有一个 Jenkins 管道脚本 其中加载了一个外部 Groovy 脚本 其中包含一些执行构建的函数 这些函数应该是普通的常规函数 因为如果有人在本地计算机上的某个地方运行构建 我也想在 Jenkins 之外使用它们 在这些函数中 我需要
  • html5:将画布复制到图像并返回

    我在画布元素上实现了放大和缩小功能 它的工作原理是缩放画布 平移画布 然后再次重绘整个场景 问题是 重新绘制所有内容需要花费很多时间 因为我的画布上有很多东西 我需要一种方法将画布复制到图像对象 然后将图像复制回画布而不损失质量 将canv
  • Rails 未定义 NilClass:Class 的方法“model_name”

    我有一个表单 我想出现在每个页面的顶部 因此我将其包含在 app views layouts application html erb 文件中 但出现错误undefined methodmodel name for NilClass Cla
  • 在 Web 应用程序中存储大型临时“会话”数据的好方法是什么

    我的公司有一个第三方网络服务 我们正在为其设计前端 此 Web 服务使用的 对象 非常大 并且根据创建的子实体的数量而变化 Web 服务不公开提交 加载子实体的方法 仅公开完整的对象层次结构 UI 本身分为许多子屏幕和主 详细视图 以便能够
  • Facebook:使用共享对话框共享 Play 商店链接

    我使用 Facebook Android SDK 中的共享对话框共享链接 我的代码如下所示 FacebookDialog shareDialog new FacebookDialog ShareDialogBuilder this setN
  • Django 模板:如何连接命名 URL 和字符串?

    我有以下设置 The urls py该项目的应用程序 urlpatterns url r main include main urls namespace main The main app s urls py urlpatterns ur
  • iPhone:如何加密字符串

    我想在 iPhone 上使用 AES 256 加密字符串 但通过谷歌没有找到太多信息 我想做的是将一些数据作为我正在创建的游戏的一部分发布到网站上 但我不希望用户能够通过查看其发布方式来作弊 因为它是纯文本 因此 我想将一个加密字符串发布到
  • CSS 文本转换“昂贵”吗?

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Is CSS text transform加工成本高吗 在我看来 浏览器被迫做一些通常不需要的工作 如果你没有转型 但是这是一个很大的
  • 将参数传递给 django admin 中的内联表单

    我有一个继承自 ModelAdmin 的管理类 class TemplateAdmin admin ModelAdmin inlines TemplateAttributeInline CompanyAttributeInline list