一尘不染

Django模型MultipleChoice

django

我知道没有MultipleChoiceField一个模式,你只能用它的形式。

今天,当我分析与多项选择相关的新项目时遇到一个问题。

我希望有一个具有的字段CharField,choices可以选择多项。

我通过创建a来解决此问题,CharField并用a形式管理多个选择,forms.MultipleChoiceField并存储用逗号分隔的选择。

在这个项目中,由于配置,我不能这样做,因为我上面提到的,我需要做的是在型号,我宁愿不来编辑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)
    ...

但具有保存多项选择的能力,而不仅仅是一项选择。


阅读 479

收藏
2020-03-29

共1个答案

一尘不染

你需要考虑如何在数据库级别存储数据。这将决定你的解决方案。

假设你希望表中的单个列存储多个值。这也将迫使你考虑如何序列化-例如,如果你需要存储可能包含逗号的字符串,则不能简单地用逗号分隔。

但是,最好使用django-multiselectfield之类的解决方案

2020-03-29