作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 Django 中编写一个模型,我需要一些选择 - 但我想让用户选择“其他”,然后也输入他们自己的选择。在 Django 中如何做到这一点?
class Client(models.Model):
ENTITY_TYPE_CHOICES = (
('publicly_traded', 'Publicly Traded Company'),
('limited_liability', 'Limited Liability Company'),
('partnership', 'Partnership'),
('ngo', 'NGO'),
)
...
entity_type = models.CharField(choices=ENTITY_TYPE_CHOICES)
最佳答案
如果您有一个包含选项
的字段,您可能不想添加不在指定选项中的脏
值。
当我必须实现这样的东西时,我在模型中添加了另一个 CharField
,专门用于存储主字段中的其他选择,例如:
my_choices_field = CharField(choices=MY_CHOICES, max_length=64)
my_choices_field_other = CharField(max_length=64)
然后,在我的模板中,我将渲染这两个字段,并在 Form
中验证用户只能填写其中一个字段,例如
def clean(self):
...
if my_choices_field and my_choices_field_other: # Both are filled, raise error
raise ValidationError("Please select one or type other 'my_choice', not both.")
如果您确实想使用相同的字段,您可能需要使用一些 JavaScript 来手动将选项添加到您的 select
中,然后解决 选择的 Django 验证
因为它可能会阻止它。
关于python - 如何在 Django 中使用选项在字段中创建用户定义的 "Other"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40177764/
我是一名优秀的程序员,十分优秀!