Сериализовать поле JSON в django несколькими допустимыми ключами? - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь сериализовать поле json со значениями списка.

Примерно так:

{
    "source_1": ["key_1"].
    "source_2": ["key_3", "key_4"]
}

Я пытаюсь сериализовать это, используя вложенные сериализаторы, застрявшие в в середине:

models.py

class ModelA(models.Model):
    AVAILABLE_SOURCES = [
        "source_1",
        "source_2"
    ]
    SOURCE1_KEYS = ["key_1", "key_2"]
    SOURCE2_KEYS = ["key_3", "key_4"]

    custom_keys = JSONField()

serializers.py

class CustomKeySerializer(serializers.Serializer):
    # TODO: Here I need to check if all the sources and
    # keys corresponding to them are valid
    pass

class ModelASerializer(serializers.ModelSerializer):
    custom_keys = CustomKeySerializer()

    class Meta:
        model = ModelA
        fields = ('__all__',)

Я хочу вызвать ошибку ValidationError если исходные или связанные ключи, указанные в custom_keys, недействительны. Если вообще этого нельзя сделать так, каковы другие возможные способы сделать это?

...