Django loaddata бросает ValidationError: [u'Enter допустимая дата в формате YYYY-MM-DD. '] на null=true поле?

Когда я работаю:

   django-admin.py loaddata ../data/library_authors.json 

ошибка:

   ...
   ValidationError: [u'Enter a valid date in YYYY-MM-DD format.']

Модель:

   class Writer(models.Model):
     first = models.CharField(u'First Name', max_length=30)
     other = models.CharField(u'Other Names', max_length=30, blank=True)
     last = models.CharField(u'Last Name', max_length=30)
     dob = models.DateField(u'Date of Birth', blank=True, null=True)

     class Meta:
       abstract = True
       ordering = ['last']
       unique_together = ("first", "last")

   class Author(Writer):
     language = models.CharField(max_length=20, choices=LANGUAGES, blank=True)

     class Meta:
       verbose_name = 'Author'
       verbose_name_plural = 'Authors'

Обратите внимание, что д.р. DateField имеет blank=True, null=True

json файл имеет структуру:

[
    {
        "pk": 1, 
        "model": "books.author", 
        "fields": {
            "dob": "", 
            "other": "", 
            "last": "Carey", 
            "language": "", 
            "first": "Peter"
        }
    }, 
    {
        "pk": 3, 
        "model": "books.author", 
        "fields": {
            "dob": "", 
            "other": "", 
            "last": "Brown", 
            "language": "", 
            "first": "Carter"
        }
    }
]

Поддержка mysql база данных имеет соответствующее поле даты в соответствующей таблице, установленной в NULL как значение по умолчанию и Пустой указатель? = ДА.

Какие-либо идеи о том, что я делаю неправильно или как я могу заставить loaddata принимать пустые значения даты?

===== РЕДАКТИРОВАНИЕ:

Ответ Daniel работал, я являюсь покрасневшим.

1
задан datakid 26 April 2010 в 01:43
поделиться

1 ответ

Просто измените "" для dob на null , и все заработает, пустая строка - это не то же самое, что null . Даже если у вас есть blank = True , это действительно только для проверки формы, а не проверки ввода через фикстуры.

2
ответ дан 3 September 2019 в 01:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: