将自定义表单参数传递给表单集

2024-01-01

我定义了以下表格

class MyForm(ModelForm):  
    def __init__(self, readOnly=False, *args, **kwargs):  
      super(MyForm,self).__init__(*args,**kwrds)  
      if readOnly:  
        Do stuff to make the inputs readonly

当我在视图中将 MyForm 实例化为表单时,它工作得很好
form = MyForm(readOnly=True, instance=ModelA)

但是当我尝试在 inlineformset_factory 中使用它时
Formset = inlineformset_factory(ModelA, ModelB form=MyForm(readOnly=True))
我收到错误“NoneType 对象不可调用。”

我认为这是因为表单是在没有模型实例的情况下初始化的
因为 MyForm 正在内联中初始化

我知道问题是我在内联调用中使用 MyForm 的方式
因为如果我执行以下任一操作,我会得到相同的错误

Formset = inlineformset_factory(ModelA, ModelB form=MyForm(readOnly=True))
Formset = inlineformset_factory(ModelA, ModelB form=MyForm())

但如果我这样做就会有效
Formset = inlineformset_factory(ModelA, ModelB form=MyForm)

显然 readOnly 参数默认为 False 并且我的输入没有改变。 有谁知道如何使用 inlineformset_factory 将 readOnly 参数传递给 MyForm 或者如何实现我想要的?

谢谢 安德鲁


挖掘通过django.forms.models你可以看到inlineformset_factory需要一个表格class,不是个例。这就是为什么你的最后一次尝试有效而另一次失败......传递实例将不起作用。

这应该会给你你正在寻找的东西:

class MyReadOnlyForm(MyForm):

    def __init__(self, *args, **kwargs):
        super(MyReadOnlyForm,self).__init__(readOnly=True, *args,**kwargs)


Formset = inlineformset_factory(ModelA, ModelB form=MyReadOnlyForm)

如果您需要两个版本

if read_only is True:
    form_class = MyReadOnlyForm
else:
    form_class = MyForm 

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

将自定义表单参数传递给表单集 的相关文章

  • AJAX 表单正在向自身提交?

    我不知道今晚发生了什么 但我似乎无法让 AJAX 工作 提交表单后 它会使用 URL 中的值刷新页面 我正在使用具有提交处理程序的验证插件 但它仍然会刷新 我以前用过这个方法 没有出现任何问题 看看这里的页面 让我知道您的想法 div cl
  • Django + nginx + uwsgi 无法登录

    我有非常简单的登录逻辑 类似于官方 Django 解决方案 class Login FormView template name login html form class AuthenticationForm def get self a
  • 使用标签或 href 传递 Django 数据

    我有一个包含链接的表 当单击该链接进行更多操作时 我想将一些数据传递给我的函数 my html table tbody for query in queries tr td value a href internal my func que
  • 跨应用程序使用 Django 模型?

    因此 在我的 Django 项目中 我有几个不同的应用程序 每个应用程序都有自己的模型 视图 模板等 让这些应用程序进行通信的好方法 Django 方式 是什么 一个具体的例子是一个会议应用程序 它有一个会议模型 我有一个家庭应用程序 我想
  • “从表中选择不同的字段名称”Django使用原始sql

    我怎样才能跑SELECT DISTINCT field name from table Django 中的 SQL 查询为raw sql 当我尝试使用时Table objects raw SELECT DISTINCT field name
  • Django:分解视图

    这实际上只是一个 最佳实践 问题 我发现在开发应用程序时 我经常会遇到a lot的意见 将这些视图分成几个视图文件是常见的做法吗 换句话说 不仅仅是views py 通常还有views 1 py views 2 py views 3 py
  • Visual C++ 打开第二个窗体

    我有一个包含两个表单的项目 Form1 h 和 Form2 h 每个的 cpp 文件是test cpp 和Form2 cpp 我想通过单击按钮从第一个表单打开第二个表单 其中我已经有代码 放置在 button1 Click 方法内 Form
  • Django 不断迁移相同的外键

    我正在将现有数据库导入到它自己的 Django 项目中 我已经从数据库生成了初始模型 通过inspectdb 并且通过注释使 Django 能够一次控制每个表managed False表元设置中的行 我从简单的模型开始 在启用带有外键的表时
  • TEST 镜像默认数据库但没有数据

    我正在尝试对我的 Django 应用程序进行一些测试 我使用了数据库镜像作为测试数据库 当我尝试运行一些测试时 默认数据库 中的数据似乎在镜像测试数据库中不可用 default sqlite ENGINE django db backend
  • Django 在 rss feed 中指定频道图像的方式

    在 rss feed 中指定频道图像的 django way 是什么 我可以通过滚动我自己的 xml 来手动完成此操作 但我正在寻找一种正确的方法来完成此操作 Editdobrych 的解决方案在这里不太适用 因为我具体询问的是 RSS 而
  • 嵌套字典中的 Django 模板

    我正在使用 Django 模板 并且遇到了嵌套字典的一个问题 Dict result dict type 0 file name abc count 0 type 1 file name xyz count 50 我的 HTML 文件中的模
  • 无故运行测试时 PyCharm 抛出“AttributeError: 'module' object has no attribute”

    因此 我有一个 Django REST Framework 项目 有一天它无法在 PyCharm 中运行测试 从命令行我可以使用它们来运行它们paver or the manage py直接地 曾经有一段时间 当我们没有在文件顶部导入类的超
  • “一旦获取切片就无法更新查询”。最佳实践?

    由于我的项目的性质 我发现自己不断地从查询集中取出切片 如下所示 Thread objects filter board requested board id order by updatedate 10 但这给我带来了实际对我选择的元素进
  • 如何使用 javascript/jquery/AJAX 调用 Django REST API?

    我想使用 Javascript jQuery AJAX 在前端调用 Django Rest API 请求方法是 POST 但当我看到 API 调用它的调用 OPTIONS 方法时 所以 我开始了解access control allow o
  • 从 S3 提供 Django 的静态文件和媒体文件

    我遇到了一个奇怪的问题 我不知道是什么原因造成的 这是我当前的配置 使用Heroku MEDIA URL media STATIC URL static STATICFILES DIRS os path join PROJECT DIR s
  • 如何在 Django QuerySet 中将 DateField() + TimeField() 转换为本地时间?

    我的模型为这些字段 date models DateField 开始时间 models TimeField 结束时间 models TimeField 我想用以下方式注释查询集start datetime and end datetime
  • Django、模板、for 循环和循环

    tl 博士在底部 让我尝试解释一下我想要完成的任务 我有一个二维数组 我想以某种方式显示其内容 我想要 行 并且每行只能显示不超过三个 对象 因为缺乏更好的词 所以我想迭代该数组并在此过程中创建 HTML 我的想法是这样的 数组中的每个 三
  • 在 Python/Django 中将用户的 facebook/twitter 好友与网站用户进行比较

    我想知道是否有人可以帮助指导解决这个相当常见的问题的方法 我正在构建一个简单的网站 用户可以连接他们的 Twitter 帐户进行注册 我想创建一个界面 向他们显示哪些推特好友已经在使用该网站 因此 我可以获得用户的 Twitter 朋友列表
  • 仅第一个加载的 Django 站点有效

    我最近向 stackoverflow 提交了一个问题 标题为使用mod wsgi在apache上多次请求后Django无限加载 https stackoverflow com questions 71705909 django infini
  • Django 模型:默认日期时间未转换为 SQL CURRENT_TIMESTAMP

    我正在使用 Django 模型创建 PostgreSQL DB 我有一个 DateTimeField 我想将当前时间戳设置为默认值 我知道有多个消息来源建议如何做到这一点 但是 当我在 Django 之外检查数据库时 默认时间戳不会显示 我

随机推荐

  • 使用 Javascript 将用户发送至浏览器主页

    是否可以使用 Javascript 获取浏览器的主页 我想在页面上放置一个链接 该链接可以转到浏览器中设置的主页 编辑 简化答案 识别浏览器并 调用window home 适用于所有浏览器 调用window location href 关于
  • Left_join:错误:无法分配大小为“小”Mb 的向量

    我正在处理相当大的数据框 其中一个极端的数据框包含大约 300 000 行和 1 500 个变量 因此 在处理这些数据帧时 我有时会收到错误 Error cannot allocate vector of size x x Gb 大多数情况
  • Jquery 解析 XML

    我想使用 JQuery 读取以下 XML Jquery 应读取 XML 并以 HTML 形式显示以下内容 以下所有内容均应链接 News Articles Destinations Epics Tuesday Night Boulderin
  • Spring、事务、Hibernate 过滤器

    我在 Spring 中使用声明式事务 我有一个带有 事务性 注释的服务层 该服务层调用 DAO 我需要在所有 dao 方法中启用 hibernate 过滤器 我不想每次都显式调用 session enablefilter 那么有没有一种方法
  • long <-> str 二进制转换

    是否有任何库可以将很长的数字转换为字符串 只需复制数据 这些单行代码太慢了 def xlong s return sum ord c lt lt e 8 for e c in enumerate s def xstr x return ch
  • 我可以使用哪些 Solr 分词器和过滤器来进行强大的常规站点搜索?

    我想确保搜索 比如说 I B M 可以通过搜索找到ibm 我还想确保Dismemberment Plan可以通过搜索找到dismember 使用 Solr 我可以在分析和查询时使用什么标记器和过滤器来允许两种结果 对于 IBM gt ibm
  • R、ggplot - 共享相同 y 轴但具有不同 x 轴刻度的图表

    Context 我有一些数据集 变量 我想绘制它们 但我想以紧凑的方式做到这一点 为此 我希望它们共享相同的 y 轴但不同的 x 轴 并且由于分布不同 我希望其中一个 x 轴进行对数缩放 另一个进行线性缩放 Example 假设我有一个长尾
  • 在展会上与 React Native 立即通话

    我正在尝试在没有中间件对话框的情况下立即发起电话呼叫 我用过Linking openUrl 但它不起作用 react native immediate phone call 可以做到这一点 但它需要链接 这是不可能的expo 我能做些什么
  • 在 Visual Studio 2019 中更改 C# 版本

    我正在使用 Visual Studio 2019 我正在尝试更改我的 C 版本 我这样做的原因是我使用的构建服务器使用旧版本的 VS MSBuild 来构建和部署代码 这是我无法控制的 因此我需要使用 C 5 在 Visual Studio
  • 在 Pandas 中使用窗口进行动态离群值检测

    我想实现离群值检测 它将使用一个窗口来检查下一个元素是否是离群值 假设我们在 pd Series 上使用长度为 3 的窗口 如下所示 0 1 2 3 4 我会计算 0 1 2 上的中位数和疯狂值 或平均值和标准差 并检查 3 是否为异常值
  • 为什么非聚集索引扫描比聚集索引扫描更快?

    据我所知 堆表是没有聚集索引的表 没有物理顺序 我有一个包含 120k 行的堆表 扫描 我正在使用此选择 SELECT id FROM scan 如果我为 id 列创建非聚集索引 我得到223 物理读取 如果我删除非聚集索引并更改表以使 i
  • JSF 自定义复合组件与自定义经典组件之间有什么区别

    我想构建一个自定义 JSF 组件 现在我读了一些oracle的文档并看到了一些代码示例 问题是我有点困惑 似乎有两种方法可以使用 JSF 2 0 构建自定义组件 据我了解 自 JSF 2 0 以来 我可以使用这些复合组件来构建我自己的组件
  • OpenGL 中的帧缓冲区对象和像素缓冲区对象有什么区别?

    FBO 和 PBO 有什么区别 我应该使用哪一个来进行离屏渲染 FBO 和 PBO 有什么区别 更好的问题是它们有何相似之处 他们唯一相似的就是他们names A 帧缓冲对象 http www opengl org wiki Framebu
  • vim自动跳到下一行

    vim 中的一个令人沮丧的行为是 当我向右或向左移动光标 分别为 l 或 h 并且我位于行的末尾或开头时 我的光标不会移动到下一行的第一列或上一行的最后一列 有办法改变这种行为吗 您可以使用whichwrap设置使h and l环绕各行的开
  • 使用带有依赖项的 useEffect hook 时何时触发清理函数?

    我正在使用 useEffect 来显示 UI 加载 但仅在 250 毫秒后 它有效 但我真的不明白为什么 特别是 useEffect 如何以及何时调用返回的函数 清除超时 嗯 我不确定这是否完美 有时应该出现 正在加载 消息 但事实并非如此
  • 当使用多个 WHEN MATCHED 语句时,它们是全部执行,还是只执行一个?

    如果 MERGE 语句中有多个 WHEN MATCHED 语句 如果它们为真 它们是否都会执行 我的例子 DECLARE X bit NULL skipping the MERGE statement straight to WHEN MA
  • 分析 Ruby 程序调用的 C 共享库

    我有一个用Ruby和C编写的程序 C部分是一个共享库 它是Ruby程序的扩展 我想使用 gprof 分析我编写的 C 共享库 我像这样编译共享库 gcc I I usr lib ruby 1 8 i486 linux I usr lib r
  • 弱引用的好处

    有人可以解释一下 C 中不同类型引用的主要好处吗 弱引用 软参考 虚拟引用 强有力的参考 我们有一个消耗大量内存的应用程序 我们正在尝试确定这是否是一个需要关注的领域 我相信软引用和幻像引用来自 Java 长弱引用 将 true 传递给 C
  • python中是否可以同时运行多个asyncio?

    根据我得到的解决方案 在 python 中使用 asyncio 运行多个套接字 https stackoverflow com questions 62571622 running multiple sockets using asynci
  • 将自定义表单参数传递给表单集

    我定义了以下表格 class MyForm ModelForm def init self readOnly False args kwargs super MyForm self init args kwrds if readOnly D