如何创建 Django ModelForm,以便它的字段有时是必需的,有时不是?

发布于 2024-09-04 10:29:48 字数 319 浏览 8 评论 0原文

好的,问题来了。 想象一下我有一个只有两个字段的 ModelForm。像这样:

class ColorForm(forms.Form):
    color_by_name = forms.CharField()
    color = forms.IntegerField(widget = forms.Select(choices=COLOR_CHOICES))

用户可以输入颜色名称,也可以从列表中选择它。颜色是必需的,但这并不意味着用户应该手动输入。我在那里放置验证,以便我的代码检查用户是否在下拉列表中选择了颜色,如果没有,那么他应该手动编写它?

Ok, here is the question.
Imagine I have a ModelForm which have only two fields. like this one:

class ColorForm(forms.Form):
    color_by_name = forms.CharField()
    color = forms.IntegerField(widget = forms.Select(choices=COLOR_CHOICES))

So a user can either input a color name, a choose it from a list. Color is required, but that doesn't mean, that user should enter it manually. There do I put validation, so that my code checks if user selected color in dropdownlist and if not then he should write it manually?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

时光倒影 2024-09-11 10:29:48

将它们设置为 required=False,但编写一个 clean() 方法来检查其中之一。请参阅 验证文档作为示例。

Make them both required=False, but write a clean() method which checks for one or the other. See the validation documentation for an example.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文