Django JSONField 具有特定的键

sup*_*kar 5 django django-models django-rest-framework django-jsonfield

我的课是这样的:

class Foo(models.Model):
  known_by = JSONField()
Run Code Online (Sandbox Code Playgroud)

我的数据看起来像这样

{ "known_by" : [
                {'by':'name1', 'value':['def']},
                {'by':'name2', 'value':['bar']}
               ]
}
Run Code Online (Sandbox Code Playgroud)

我有什么办法可以强制Jsonfield要求遵循by,value[]dict. 我知道如何使用serialiazers

任何其他更清晰的方法来强制执行此操作(在模型定义本身中)?谢谢

rai*_*ert 1

你可以这样实现:

from django.db import models

class Bar(models.Model):
    by = models.CharField()
    value = models.ArrayField()


class Foo(models.Model):
    known_by = models.ForeignKey(Bar, on_delete=models.CASCADE)
Run Code Online (Sandbox Code Playgroud)