问题标签 [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 投票
2 回答
217 浏览

django - 在 Django 中创建订单

大家好,我有几个关于 django 管理员的问题。

先说相关细节。我目前有客户端、打印机、墨盒和订单模型。

Printer 模型对 Cartridge 模型有一个 ManyToManyField,这将允许您选择可以与该打印机一起使用的所有墨盒。

Cliente 对他们拥有的打印机有一个 ManyToManyField。

1) 我想通过 Django 管理员创建一个订单,让您通过 ManyToManyField 指定客户端、折扣和多个墨盒。这有点棘手,因为我必须通过另一个表来指定它是新墨盒还是重新填充。

2) 我希望管理员过滤墨盒以仅显示属于他们拥有的打印机的墨盒。

3)我也想有一个字段来保存他们订单的总价格,但它应该根据他们添加到订单中的墨盒数量来计算。我不知道这是否应该通过向订单中添加更多相同的墨盒或通过在相关表中指定数量的另一个字段来完成。

这可以在管理员中完成还是我需要使用表格?如果是这样,我将如何将其添加到管理员?这似乎很困难,可能我必须在多个部分中做一些事情,因为为了过滤墨盒列表,我必须事先了解客户。

0 投票
4 回答
44553 浏览

django - 预填充 Django(非模型)表单

我正在尝试根据一些信息在我的 django 表单中预填充数据,但不使用 ModelForm,所以我不能只设置实例。

这似乎应该很容易,但由于某种原因,我找不到任何文档告诉我如何做到这一点。这是我的表格:

我试着做:

这是行不通的。

0 投票
1 回答
162 浏览

django - 如何存储登录用户的名称?

我想以自定义形式存储当前登录到 Django 的用户的名称。在管理员中,我们可以通过编写 modified_by=request.user.username 来做到这一点,但我如何以自己的形式做到这一点?

0 投票
1 回答
712 浏览

django - 在管理通用内联表单中创建新的通用相关对象的问题

我对管理通用内联表单有奇怪的问题。我有两个模型,主项目和通过VideoLink具有多对多关系的视频,因为我需要能够将不同数量的视频链接到项目,并将许多项目链接到视频:

我没有在这里展示视频模型,但这对我的问题并不重要。

我所需要的只是以两种方式定义链接​​到主对象(项目)的新相关对象(VideoLink):

  • 在管理内联表单中选择视频(这很好用!)
  • 在假 video_url 字段中定义新视频的 URL,创建新的 Video 对象并在主(项目)和新(视频)对象之间创建新的 VideoLink 对象。

对于第二种情况,我需要设置中间功能。它将处理新视频的 url(如http://www.youtube.com/watch?v=WIXVzeB0DUo),创建新的 Video 对象并将其与 youtube.com 同步。我认为最好的方法 - 将其放入 AdminVideoLink 的表单清理方法中,对吗?

所以,我写了这段代码:

但是每次保存表单后,我都会在管理内联表单中看到错误:近选择带有视频对象 - “需要字段”(我的翻译)。但是我在我的 clean 方法中设置了这个字段。我检查了一下:self.cleaned_data['video'] 包含我刚刚创建和同步的新 Video 对象。

还有一个很奇怪的问题:我在这个干净的方法中找不到父实例(主项目对象)。如果我使用简单的 ManyToMany 对象(没有通用关系和 generic.GenericTabularInline 表单)做同样的事情,我会在我的内联表单中看到 video 和 project 字段,但在一般情况下我没有。

我检查了相关帖子,但没有找到答案。

0 投票
1 回答
985 浏览

django - 需要带有外部链接的文本输入的表单小部件!

我在我的数据库中保留了模型电影的字段 imdb_id:

而且我想制作特殊的小部件,用于在字段“imdb_id”的文本输入附近的管理表单中显示指向 imdb.com 的外部链接。我认为它可能是任何带有外部链接的表单字段的全局小部件,通过使用特殊掩码生成(在我的情况下,这个掩码是' http://www.imdb.com/title/tt%s/ ')。我知道如何编写小部件,但我不知道如何将我在电影模型中定义的蒙版推送到这个小部件。我不想违反 DRY 原则并在两个不同的地方定义这个面具。并且它将成为将来与其他外部链接相同目的的好工具。

你觉得这个小部件怎么样?怎么可能实现它?可能有人在我之前写过吗?

谢谢!

0 投票
1 回答
1667 浏览

django - Django模型覆盖保存/使用信号/或使用模型形式?

我意识到以前有人问过这个问题,但是我找不到真正涉及我正在尝试做的事情的问题。我认为这很简单,但我想知道普通民众认为这里最好的形式是什么。

假设我们有以下内容:

模型.py

保存功能中的评论几乎总结了我的问题: - 我们如何确保给用户的相关 TestClass 不超过 5 个 - 如果已经有 5 个,我们如何优雅地退出保存(不保存) -我们如何将此报告给用户?- 我们在哪里验证 testfield 对象以确保它只有 [az]?我可以只导入 re 并在这里做吗?我应该吗?

最好把这一切都扔在这里吗?我应该触发 pre_save 信号吗?还是我应该只使用带有验证的 ModelForm?

0 投票
1 回答
1988 浏览

django - 在表单 clean() 方法中获取 POST 变量

是否有一种直接的方法可以访问 POST 变量以在管理表单字段的 clean 方法中完成一些自定义验证查找?

我需要获取的是“供应商”发布变量,它不在此表单的已清理数据中,因为供应商字段是父表单的一部分。我能看到抓住它的唯一方法是访问 request.POST 但在那里没有多大成功。

谢谢

0 投票
2 回答
2419 浏览

django - 保存模型表单时替换缺少的字段值

我有一个这个模型:

然后是一个基于这个模型的表格:

当我在模板中使用此表单时,未添加“公司”字段,这是预期的。但该字段必须为空白!= True。

我使用这种形式的方式,company 属性在视图函数中总是已知的,因为它是从 URL 传递的。如何在保存之前将公司添加到视图功能的表单中?

这是我的看法:

0 投票
2 回答
4370 浏览

django - 在 Django ModelForm 方面需要帮助:如何过滤 ForeignKey/ManyToManyField?

好吧,我很难解释这个,让我知道我是否应该向你补充更多细节。

我的网址如下所示:http<category ://domain.com/ >/
每个<category> 可能有一个或多个子类别。

我希望类别页面有一个包含类别子类别的选择框(以及其他字段)的表单。我目前在其中一个模板中对表单进行了硬编码,但我想让它直接反映模型。

在我当前的硬编码解决方案中,我的类别视图中有:

表单模板迭代并打印出选择框(参见下面的模型代码)

我猜我想要一个带有init的 ModelFormSet过滤掉类别,但我似乎无法在文档中找到如何做到这一点。

一直在看如何在 Django ModelForm 中过滤 ForeignKey 选择?也一样,但我无法让它正常工作。

我的模型

我的表格

0 投票
1 回答
192 浏览

django - def clean 方法中的十进制计算错误?

我正在尝试在验证后的 def clean 方法中进行一些简单的计算(基本上即时吐出检索到的英国产品价格的欧元转换)。我不断收到 TypeError。

完整错误显示:

无法转换 {'product': , 'invoice': , 'order_discount': Decimal("0.00"), 'order_price': {...}, 'order_adjust': 无, 'order_value': 无, 'DELETE': False, 'id': 92, 'quantity': 8} 转十进制

所以我猜 django 正在将整个cleaned_data 表单传递给 Decimal 方法。不知道我哪里出错了 - 我正在使用的代码是:

如果发票是类型 2(欧元发票),则系统应获取最新汇率并将其应用于匹配的英镑价格以获取欧元结果。

在 def clean 方法中执行十进制转换应该是一个问题吗?

谢谢