PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

xác thực lược đồ trường django postgresql json

Tôi đã viết trình xác thực tùy chỉnh bằng cách sử dụng jsonschema để làm điều này.

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. Rails:Triển khai đến Heroku, Nhiều vấn đề

  2. Postgres - Đây có phải là cách phù hợp để tạo chỉ mục một phần trên cột boolean không?

  3. Postgres thêm cột với các giá trị được tính toán ban đầu

  4. PostgreSQL - Lấy dữ liệu thống kê

  5. Cách đăng nhập vào postgresql db - Sau khi giết phiên (đối với cơ sở dữ liệu sao chép)