Django可以在一个字段中接受并验证多个值吗?

时间:2018-10-29 21:01:48

标签: django django-models django-forms

首先,我对在数据模型中使用ForiegnKeys非常熟悉。在这种特殊情况下,我不需要或想要复杂的关系。 (我正在捕获用于DHCP服务的名称服务器和NTP服务器。一个表来捕获用作FK的此类服务器将是多余的。)

我需要的是UI位以捕获多个(例如0到4个)IP地址,并将它们存储为单个CharField作为逗号分隔的列表。我知道我可以通过一个简单的CharField和clean()来做到这一点,该逗号在逗号上分割并检查每个IP或使用期望多个值的正则表达式。但是,还有更好的方法(使用Django 2.0)吗?我看了ComboField和MultiValueField,但是示例很少,我的印象是对于期望多少个值来说,这些都是固定的。就像GenericIPAddressField不存在一样,您可能会使用MultiValueField来验证4个八位字节中的每一个。

如果需要的话,它将在管理网站中使用。

编辑:明确需要UI(相对于存储空间)

1 个答案:

答案 0 :(得分:0)

JSONField可能会解决您的问题;您可以将所有IP存储在一个json对象中