允许 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