问题标签 [modelform]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何创建 Django ModelForm,以便有时需要它的字段,有时不需要?
好的,这是问题。想象一下,我有一个只有两个字段的 ModelForm。像这个:
所以用户既可以输入颜色名称,也可以从列表中选择。颜色是必需的,但这并不意味着用户应该手动输入。我在那里进行验证,以便我的代码检查用户是否在下拉列表中选择了颜色,如果没有,那么他应该手动编写吗?
django - 模型表单的 get_model 等效项?
我有多个 ModelForm 类,每个类代表一个不同的模型。我想要一个通用的“创建”函数,它根据 URL 参数加载指定的模型表单。可以使用以下方法动态加载模型:
有谁知道我如何为 ModelForms 实现相同的目标,例如:
我想不出用通用视图来做到这一点的方法——它们需要传递 ModelForm,而不仅仅是它的名字。如果我使用 get_model 获取模型,然后将其传递给通用视图,它将显示一个表单,但我无法排除模型字段。
TIA 任何提示
python - 在运行时设置 Django ModelForm 可见字段?
我有一个 Django 模型:
从那里,我创建了一个 ModelForm:
我希望能够在我的模板中显示与用户可以更改的特定信息相对应的表单片段。例如,如果我想让客户更改他们的姓名,我希望能够显示一个只有“first_name”和“last_name”字段的表单。
一种方法是为每个不同的字段片段创建一个 ModelForm ......对于名称示例,它看起来像:
这似乎很不优雅,而且不灵活。我想做的是能够在运行时指定字段,所以当我将字典从视图传递到模板时,我可以设置我想显示的字段。如何设置它以便在运行时为表单设置字段?理想情况下,我希望传递的最终字典看起来像这样:
然后,我知道每当我输出 name_change_form.as_p 时,它都会包含我正在寻找的表单字段。
想法?也可以随意推荐一种更好的方法来做到这一点。
python - 如何在表单的子类中排除 ModelForm 中声明的字段?
在 Django 中,我试图从ModelForm
我想删除一些字段(或者只有一些字段,更正确)的表单派生(子类)一个新表单。当然明显的方法是这样做(基本形式来自django.contrib.auth.forms
):
但这不起作用,因为它还username
在结果表单中添加/保留了一个字段。该字段在 中明确声明UserChangeForm
。即使添加username
到exclude
属性也无济于事。
是否有一些适当的方法来排除它,我错过了什么?这是一个错误吗?有一些解决方法吗?
django - 带有 RadioSelect 表单的 Python/Django BooleanField 模型默认为空
我正在使用一个 Django ModelForm,其中我的模型包含一个 BooleanField,并且与该 BooleanField 关联的表单小部件是一个 RadioSelect 小部件。我希望 RadioSelect 小部件呈现为没有选择任何选项,因此用户必须明确做出选择,但如果他们没有选择,表单验证将失败。有没有办法做到这一点?
模型.py
表格.py
django - Django“复制”模型表单
我想知道是否有一种在 Django 中创建“重复”ModelForm 的简单方法 - 即预先填充现有模型实例内容的表单(某些字段除外,例如那些唯一的字段),但会创建一个保存时的新实例。
我正在考虑向 ModelForm 提供实例,以便像使用“编辑”表单一样预填充数据,然后在保存之前将实例设置为 None,但这给出了一个“'NoneType' 对象没有属性 'pk '" 在表单上调用 .save() 时出错。似乎在构造表单时提供实例的行为会在最后产生一些依赖。
我很难找到解决这个问题的方法,但我无法想象“重复”表单太独特了,所以也许我遗漏了一些简单的东西?
任何帮助,将不胜感激。
django - 如何在 ModelForm 中访问请求以添加 request.user 作为外键
我正在尝试覆盖模型表单中的保存以将当前用户添加为车辆的所有者。但是我收到“NoneType”对象没有属性“用户”我忘记了什么?
表格.py:
我的模型:
我正在使用通用视图:
django - Django:管理员中的 MultipleChoiceField 以结转以前保存的值
我无法在管理员的 ModelForm 中结转以前选择的项目。我想使用forms.CheckboxSelectMultiple小部件,因为这是此用例中最直接的 UI。它的工作原理是在保存时存储值。但是在编辑之前保存的项目时,之前保存在该字段中的值不会反映在小部件中。
用户界面示例:
发布后(编辑该项目,将其返回空白):
但是,当编辑项目时不使用小部件而是使用常规 CharField 时,它看起来像:
那么由于某种原因,复选框小部件不代表这些值?
这是我的简化设置,models.py
表格.py:
管理员.py
因此,当编辑先前保存的项目并选择说“博客”时,在init上进行调试会返回 self.fields['entriesFrom'] ([u'blog',]) 上的正确值,但它不会反映在复选框中(什么都没有在管理员中显示为选中)。
编辑
更新了 ModuleForm 类以传递初始值,但在初始值(“[u'blog']”)中有一些值时,仍然没有预先填充任何内容。
django - Django 在反向重定向中使用新创建的对象
我正在尝试从新创建的项目对象中提取 id,以便可以将用户重定向到包含新项目的页面。现在我得到“'ProjectAddForm'对象没有属性'id'”。
我在网上读到这应该可以,但由于某种原因它不是。
表格.py
django - Django ModelForm 验证失败且没有错误
好的,我一直盯着这个几个小时试图弄清楚发生了什么,但无济于事。我正在尝试使用“instance”关键字创建一个 ModelForm 以将其传递给现有模型实例,然后保存它。这是 ModelForm(在我试图找出这个问题的原因时,从原来的版本中删除了很多):
这是我正在运行的代码:
模型对象(m
上面)是有效的,它保存得很好,但表单不会验证。现在,据我所知,此代码与此处的 Django 文档示例相同:http: //docs.djangoproject.com/en/dev/topics/forms/modelforms/#the-save-method,但显然我错过了一些东西。我将非常感谢一些新鲜的眼睛来告诉我我做错了什么。
谢谢