PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

django postgresql walidacja schematu pola json

Napisałem niestandardowy walidator przy użyciu jsonschema aby to zrobić.

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. Wyzwalacz aktualizacji PostgreSQL

  2. Zoptymalizuj zakres zapytań sygnatury czasowej Postgres

  3. psql:FATAL:nie można otworzyć bazy plików/11951/11717:system plików tylko do odczytu

  4. Jak przejść wstecz po hierarchicznej strukturze drzewa za pomocą zapytań rekurencyjnych?

  5. jak poprzedzić ciąg przed sekwencją wygenerowaną przez postgresql?