У меня есть JSONField в моей модели, когда я пытаюсь сохранить 0 как значение в json на странице администратора django, оно сохраняет значение как нулевое. Как я могу сохранить ноль как значение? Версия Джанго: 2.1.7
Страница администратора Джанго:
мой JSONField:
lecturer_scores = JSONField(
verbose_name=_("Lecturer Score"),
validators=[validate_lecturer_score],
default=dict,
blank=True
)
Мой вклад:
{
"score 1": 0,
"score 2": 5
}
он сохраняет как:
{
"score 1": null,
"score 2": 5
}
Валидатор:
from django.core.validators import validate_integer
from django.core.exceptions import ValidationError
def validate_lecturer_score(value):
for k, v in value.items():
if v:
validate_integer(v)
for value in value.values():
if value:
if value < 0 or value > 100:
raise ValidationError(_("Lecturer score for user's participance rate calculation should be between 0 and 100."))
validate_lecturer_score
я воспроизвел ваш код кроме валидатора. И поле сохранено как0
, а неnull
. - person Brown Bear   schedule 10.04.2019null
на ноль и после сохранения в базе данных вы получаетеnull
? Вы можете добавитьprint
в свой валидатор? - person Brown Bear   schedule 10.04.2019if value:
внутри? - person Ivan Starostin   schedule 10.04.2019lecturer_scores[key] = self.lecturer_scores.get(key) or None
- person Aliasghar Soltani   schedule 10.04.2019