问题标签 [django-forms]

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.

0 投票
5 回答
3946 浏览

django - 如何检查 Django (django-admin) 中的值转换?

我有一个状态字段,它有 3 个值:挂起、激活和拒绝。如果我要更改状态的值,我希望检查已激活不能更改为待处理。我不想为此编写存储过程。在保存之前我可以在 Django 中获得以前的值吗?

表示新旧价值。

0 投票
5 回答
26498 浏览

django - Django 中的内联表单验证

我想在管理员更改表单中强制设置整个内联表单集。因此,在我当前的情况下,当我在发票表单(在管理员中)上点击保存时,内联订单表单是空白的。我想阻止人们创建没有关联订单的发票。

有谁知道一个简单的方法来做到这一点?

在这种情况下,模型字段上的( ) 之类的正常验证required=True似乎不起作用。

0 投票
1 回答
183 浏览

django - 在 Django 管理页面中收集其他信息?

如果用户选择某个选项,则保存时我想将用户带到一个页面,他可以在该页面上再填写一个字段,然后重定向到管理员默认页面

0 投票
1 回答
3490 浏览

django-admin - 内联-django

我有 2 个模型。我想让模型 2 与模型 1 内联。在管理页面上,我想将模型 2 的一些字段显示为内联,并将它们全部显示为只读。当我单击内联的值时,我应该将我链接到具有该值的 model2

显示字段只读的内联。我想将内联模型字段显示为只读

0 投票
1 回答
238 浏览

django - 如何制作动态表格

我有一个状态字段,它有 3 个选项 1)已激活 2)已拒绝 3)待定。如果用户选择拒绝状态,那么他必须输入拒绝原因,否则该原因字段应该被隐藏。或者当用户选择被拒绝时,我应该重定向它到其他表格,以便我可以使用拒绝原因发送电子邮件

0 投票
2 回答
168 浏览

django - 更新时如何使字段只读

我有一个表格。填写表格后,我不希望用户更改表格中的任何内容。

但是用户可以看到这些值。意味着所有字段都是不可编辑的。我可以通过使用实例方法来做到这一点,但这对外键没有帮助。

0 投票
1 回答
4333 浏览

django - 多对多关系的管理内联表单中的图像和视频预览

A 有 3 个模型:具有 ManyToManyField 关系的项目、图像和视频:

我使用链接到当前项目的图像和视频的内联表单配置项目的管理表单:

但是带有简单选择字段和删除复选框的内联表对我来说非常痛苦,我想在这里显示图像或视频的预览(youtube)。我在AdminImageWidget的帮助下为图像解决了这个问题:

这是最好的方法吗?在我的情况下,我不需要文件上传输入,只需要内联表格中的图像预览。我还需要预览 youtube 视频,我应该编写自己的小部件来显示视频并将其应用于一些假字段吗?

对于不必要的假字段,通过小部件解决这个问题很奇怪。还是正常方式?

任何帮助将不胜感激!谢谢!

0 投票
1 回答
1610 浏览

django - django 内联问题

我做了一个名为 Fooinline 的内联。这个内联在 Django 1.02 中运行良好,但是一旦我升级到 Django 1.1,它就开始出现错误:

我的Fooinline代码是:

而我FlatTextWidget的是

我称我Fooinline

0 投票
11 回答
32846 浏览

python - Django表单,表单字段的继承和顺序

我在我的网站中使用 Django 表单,并希望控制字段的顺序。

这是我定义表单的方式:

该名称是不可变的,仅应在创建实体时列出。我使用继承来添加一致性和 DRY 原则。发生的事情并没有错,事实上完全可以预料的是,名称字段在视图/html 中最后列出,但我希望名称字段位于摘要和描述之上。我确实意识到我可以通过将摘要和描述复制到 create_form 并松散继承来轻松修复它,但我想知道这是否可能。

为什么?想象一下,您在 edit_form 中有 100 个字段,并且必须在 create_form 的顶部添加 10 个字段 - 复制和维护这两个表单看起来不会那么性感。(这不是我的情况,我只是在编一个例子)

那么,我怎样才能覆盖这种行为呢?

编辑:

显然,如果不经历令人讨厌的黑客攻击(摆弄 .field 属性),就没有合适的方法来做到这一点。.field 属性是一个 SortedDict(Django 的内部数据结构之一),它不提供任何重新排序键:值对的方法。但是,它确实提供了一种在给定索引处插入项目的方法,但这会将项目从类成员移动到构造函数中。这种方法可行,但会使代码的可读性降低。我认为合适的唯一其他方法是修改框架本身,这在大多数情况下都不是最佳的。

简而言之,代码将变成这样:

那让我闭嘴:)

0 投票
2 回答
9702 浏览

django - Django Formset.is_valid() 额外表单失败

在我的 Django 应用程序应用程序中,我有一个从简单(非模型)表单创建的表单集,其中 extra=1(以允许 javasript 稍后添加更多表单)。

现在,当我在 POST 请求的视图中创建并尝试验证它时:

如果额外呈现的表单提交为空,它总是无法通过上述检查。

如果我检查form.changed_data最后一个空的额外表单,我会得到可以选择的字段(如上面的pickme)。换句话说,当需要一些选择字段时,表单集还不够聪明,无法确定应该忽略提交的空表单。