我的模型看起来像这样:
from django.contrib.postgres.fields import ArrayField
class Trigger(models.Model):
solutions = ArrayField(models.TextField(blank=True, null=True), blank=True, null=True, help_text='some helpful text')
这允许我在默认情况下输入由逗号分隔的解决方案列表。例如:我可以在这个文本字段中输入:
1. watch out for dust.,
2. keep away from furry animals.,
这将创建一个包含两个单独字符串项的列表。但是,如果解决方案文本本身包含逗号,例如:
1. cockroaches, polens and molds might be harmful.
这将创建两个单独的解决方案行,因为该句子中存在逗号。
我如何告诉django使用不同于逗号的分隔符,因为它几乎肯定是句子的一部分。我怎样才能使用像'这样的分隔符|我查看了arrayfield类的内部,但它不允许任何分隔符。
2条答案
按热度按时间epfja78i1#
一些相关文件:
如果您在管理站点上使用内置表单,或者使用ModelForm而不自定义任何字段,则该字段可能会自动使用
SimpleArrayField
表单字段。看起来您可以覆盖分隔符字符。文档说明了以下注意事项:该字段不支持分隔符的转义,因此,如果分隔符是基础字段中的有效字符,请小心。分隔符不需要只有一个字符。
无论如何,你可以通过提供一个像这样的自定义表单来做到这一点...
如果这是用于管理站点...
6yjfywim2#
稍微干净一点的解决方案(不覆盖Form类中的
__init__
)是只在表单上指定字段。这样,您可以轻松地选择使用,例如
SplitArrayField
或为字段指定不同的小部件。