PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

django postgresql json валидиране на схема на поле

Написах персонализиран валидатор, използвайки jsonschema за да направите това.

project/validators.py

import django
from django.core.validators import BaseValidator
import jsonschema
    

class JSONSchemaValidator(BaseValidator):
    def compare(self, value, schema):
        try:
            jsonschema.validate(value, schema)
        except jsonschema.exceptions.ValidationError:
            raise django.core.exceptions.ValidationError(
                '%(value)s failed JSON schema check', params={'value': value}
            )

project/app/models.py

from django.db import models

from project.validators import JSONSchemaValidator

MY_JSON_FIELD_SCHEMA = {
    'schema': 'http://json-schema.org/draft-07/schema#',
    'type': 'object',
    'properties': {
        'my_key': {
            'type': 'string'
        }
    },
    'required': ['my_key']
}

class MyModel(models.Model):
    my_json_field = models.JSONField(
        default=dict,
        validators=[JSONSchemaValidator(limit_value=MY_JSON_FIELD_SCHEMA)]
    )


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо стойностите NULL са на първо място при поръчка на DESC в заявка на PostgreSQL?

  2. Извличане на секунди от таблицата с интервали / Прехвърляне на запис към интервал?

  3. Как документирате кода на вашата база данни, за да видите зависимостите между обектите на базата данни?

  4. Нулиране на последователност в jpa

  5. Таблица за връщане на функция на PostgreSQL