sql >> データベース >  >> RDS >> PostgreSQL

djangopostgresqljsonフィールドスキーマの検証

    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. SELECT*FROM複数のテーブル。 MySQL

    2. SQLAlchemyでシャーディングするために__tablename__を動的に設定しますか?

    3. mysqlテーブルにPythonのランダムデータを入力します

    4. 初めて見る人のためのMSSQLServerの分析