在Django模型中限制jsonField键值的最佳方法是什么

时间:2017-11-23 05:21:33

标签: python django

我正在研究Django项目,因为我需要一个模型来保持用户的个性化信息。该字段是独立的,因此我将其保留为JSON字段。现在我想知道限制该字段的键值的最佳方法是什么。

假设某些用户想要分享姓名,地址,发送电子邮件给我们,有些人只想分享姓名。此列表可能会不时增加。所以很难预测将来需要什么。为简单起见,我喜欢将此信息作为JSON响应保存在我的数据库中。这个问题的最佳设计是什么?

1 个答案:

答案 0 :(得分:1)

我会这样用 -

def validate_json(value):
    try:
        json.loads(value)
    except Exception:
        raise ValidationError(
            _('%(value)s is not an valid Json string'),
            params={'value': value},
        )


class Track(models.Model):
    personalized_information = models.TextField(null=True, blank=True,  validators=[validate_json])