Когда я работаю:
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 работал, я являюсь покрасневшим.
Просто измените ""
для dob
на null
, и все заработает, пустая строка - это не то же самое, что null
. Даже если у вас есть blank = True
, это действительно только для проверки формы, а не проверки ввода через фикстуры.