允许 Django 模型 ForeignKey 字段的表单上的 TextInput

Posted

技术标签:

【中文标题】允许 Django 模型 ForeignKey 字段的表单上的 TextInput【英文标题】:Allow TextInput on form for a Django model ForeignKey field 【发布时间】:2012-07-24 09:28:25 【问题描述】:

我有一个表单,其中字段来自 ModelForm,其中一个是 models.ForeignKey 字段,它链接到我的用户模型中的用户名。这会导致数据库中的每个用户都列在选择字段中。我希望这个字段是一个 TextInput,有人在其中输入用户名,我已经在 ModelForm 中做到了。但是当我的视图通过 form.is_valid() 时,表单给出了一个错误,说这个字段是无效的。如果我删除 is_valid() 检查,它当然会给我一个错误,因为数据没有验证,所以表单无法保存。

如何验证 TextInput 并将其保存到我的 ForeignKey 字段?

【问题讨论】:

【参考方案1】:

像这里https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#overriding-the-clean-method一样覆盖您的表单清理方法

确保您的 clean 方法清除了文本字段(去除空格)并查找用户名(或用户 ID)的值实际上是正确的。

【讨论】:

以上是关于允许 Django 模型 ForeignKey 字段的表单上的 TextInput的主要内容,如果未能解决你的问题,请参考以下文章

Django:ForeignKey 的值可以是 None 吗?

通过 ForeignKey 模型计算项目,Django 1.11

Django:ForeignKey(models) 到不可见的模型?

django ForeignKey 到任何类型的模型

Django ForeignKey 模型表单

在 django 中删除 ForeignKey 时在相关模型上发出信号