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



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

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

我会这样使用 -

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])