【发布时间】:2015-02-10 23:59:59
【问题描述】:
我知道 Model 没有MultipleChoiceField,您只能在表单上使用它。
今天我在分析一个与多项选择相关的新项目时遇到了一个问题。
我想要一个像 CharField 和 choices 这样的字段,并且可以选择多项。
我在其他时候通过创建CharField 解决了这个问题,并使用forms.MultipleChoiceField 管理表单中的多个选项,并存储用逗号分隔的选项。
在这个项目中,由于配置的原因,我不能像上面提到的那样做,我需要在模型中做,我更喜欢 NOT 来编辑 Django 管理表单 都不使用表格。 我需要一个具有多项选择的模型字段
- 有人通过模型解决过这样的问题吗?
可能会覆盖某些模型函数或使用自定义小部件...我不知道,我有点迷路了。
编辑
我知道简单选择,我想有类似的东西:
class MODEL(models.Model):
MY_CHOICES = (
('a', 'Hola'),
('b', 'Hello'),
('c', 'Bonjour'),
('d', 'Boas'),
)
...
...
my_field = models.CharField(max_length=1, choices=MY_CHOICES)
...
但可以保存多项选择,而不仅仅是一项选择。
【问题讨论】:
-
您所描述的应该是两个模型之间的多对多关系,至少如果您关心您的数据库架构健全性的话。而且实现起来会比编写自定义字段和小部件更快...
-
@brunodesthuilliers 不,我对链接 2 模型不感兴趣,事实上,没有多个选项的模型(我在我的问题中从未说过)。我需要选项就像一个选择,一个元组。
-
@Liarez:在关系模式中,字段应该是原子的。这就是为什么技术上合理且正确的解决方案是使用您的选项创建第二个模型并使用多对多关系。请注意,整个过程大约需要 10 分钟。
-
@brunodesthuilliers 再次,也许我解释得不好,我不是英语本地人,由于项目本身,我需要避免使用模型,我知道你说的选项是正确的一,是任何人都会想到的第一个,但我不能那样做(因为项目结构,但主要是因为客户)
标签: python django django-models