forked from ietf-tools/datatracker
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdb.py
28 lines (22 loc) · 1.1 KB
/
db.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# Copyright The IETF Trust 2021, All Rights Reserved
# -*- coding: utf-8 -*-
# Taken from/inspired by
# https://stackoverflow.com/questions/55147169/django-admin-jsonfield-default-empty-dict-wont-save-in-admin
#
# JSONField should recognize {}, (), and [] as valid, non-empty JSON
# values. However, the base Field class excludes them
import jsonfield
from ietf.utils.fields import IETFJSONField as FormIETFJSONField
class IETFJSONField(jsonfield.JSONField):
form_class = FormIETFJSONField
def __init__(self, *args, empty_values=FormIETFJSONField.empty_values, accepted_empty_values=None, **kwargs):
if accepted_empty_values is None:
accepted_empty_values = []
self.empty_values = [x
for x in empty_values
if x not in accepted_empty_values]
super().__init__(*args, **kwargs)
def formfield(self, **kwargs):
if 'form_class' not in kwargs or issubclass(kwargs['form_class'], FormIETFJSONField):
kwargs.setdefault('empty_values', self.empty_values)
return super().formfield(**{**kwargs})