Ошибка "django.core.exceptions.ValidationError"

Я пишу простую игру в Django, все было правильно, но вдруг …, я столкнулся с следующей ошибкой:

  • Django.v = 1.7
  • Python.v = 3.4

Я не знаю, что не так с этими кодами:

(test)alireza@alireza:~/test/test1$ python manage.py syncdb Operations to perform: Synchronize unmigrated apps: django_admin_bootstrapped, django_admin_bootstrapped_bootstrap3, crispy_forms Apply all migrations: contenttypes, admin, auth, arosis, sessions Synchronizing apps without migrations: Creating tables... Installing custom SQL... Installing indexes... Running migrations: Applying arosis.0008_auto_20150212_0826...Traceback (most recent call last): File "manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/home/alireza/test/lib/python3.4/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line utility.execute() File "/home/alireza/test/lib/python3.4/site- ... ... ... return self.to_python(value) File "/home/alireza/test/lib/python3.4/site-packages/django/db/models/fields/__init__.py", line 1252, in to_python params={'value': value}, django.core.exceptions.ValidationError: ["'' value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] format."] 

В моих models.py:

 class Move(models.Model): """docstring for Move""" x = models.IntegerField() y = models.IntegerField() comment = models.CharField(max_length=30) game = models.ForeignKey(Game) by_first_player = models.BooleanField(default=True) timestamp = models.DateTimeField(auto_now_add=True) def __str__(self): return "{}".format(self.comment) class Meta: get_latest_by = 'timestamp' def player(self): return self.game.first_player if self.by_first_player else self.game.second_player 

Я дал auto_now_add=True ,

но сначала, когда я бегу:

 python manage.py makemigrations 

Он попросил меня ввести значение по умолчанию для DateTimeField()

Что мне делать?

0008_auto_20150212_0826.py

 # -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations class Migration(migrations.Migration): dependencies = [ ('arosis', '0007_auto_20150211_1844'), ] operations = [ migrations.AlterModelOptions( name='move', options={'get_latest_by': 'timestamp'}, ), migrations.AddField( model_name='move', name='by_first_player', field=models.BooleanField(default=True), preserve_default=True, ), migrations.AddField( model_name='move', name='timestamp', field=models.DateTimeField(default='', auto_now_add=True), preserve_default=True, ), ] по # -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations class Migration(migrations.Migration): dependencies = [ ('arosis', '0007_auto_20150211_1844'), ] operations = [ migrations.AlterModelOptions( name='move', options={'get_latest_by': 'timestamp'}, ), migrations.AddField( model_name='move', name='by_first_player', field=models.BooleanField(default=True), preserve_default=True, ), migrations.AddField( model_name='move', name='timestamp', field=models.DateTimeField(default='', auto_now_add=True), preserve_default=True, ), ] 

3 Solutions collect form web for “Ошибка "django.core.exceptions.ValidationError"”

У меня была аналогичная вещь. Удалите все миграции из вашей папки / миграции, а затем запустите python manage.py makemigrations, а затем python manage.py migrate. Это сработало для меня.

Насколько я понимаю, у вас уже есть база данных, в которой уже есть некоторые записи «Переместить».

Если вы добавите столбец в таблицу, в которой уже есть данные, вам необходимо указать значение по умолчанию для этого столбца, что миграция будет установлена ​​на все существующие записи в БД для вовлеченной таблицы (в противном случае такие записи будут invalid, если значение null = True указано как kwarg, если я правильно помню)

Кроме того, это возможно (бывает со мной ВСЕ ВРЕМЯ), что вам нужно будет установить в settings.py переменные DATE_INPUT_FORMATS и DATETIME_INPUT_FORMATS, соответственно вашему языку и тому, как вы привыкли вводить даты. (См. https://docs.djangoproject.com/en/1.7/ref/settings/#date-input-formats )

Пример (в Италии у нас есть формат DD / MM / YYYY):

 DATE_INPUT_FORMATS = ( "%d/%m/%Y", ) DATETIME_INPUT_FORMATS = ( "%d/%m/%Y %H:%M", ) 

Конфигурация django ожидает следующий формат:

  YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] 

(Материал внутри квадратных скобок необязателен)

Изменить: auto_now_add kw arg сообщает, что значение поля должно быть установлено на «сейчас» при добавлении (а не обновлении ..) записи

Он попросил меня ввести значение по умолчанию для DateTimeField ()

Он делает это, потому что вы не указали значение по умолчанию, и поле не является необязательным. Поскольку это разрушительное изменение, вы должны указать значение по умолчанию.

Вероятно, вы просто нажали на ввод и, следовательно, на исключение, поскольку пустая строка не является допустимой записью для DateTimeField .

Решение состоит в том, чтобы снова выполнить миграцию и на этот раз предоставить действительную строку даты и времени; который будет использоваться для всех существующих строк в вашей базе данных; пример допустимого формата – 2015-02-12 00:00

  • Последующие действия: Выполнять .sql-файлы из python
  • django select_related в шаблоне
  • Формат каталога исходного текста смешанного языка
  • Лучший способ разбивать необработанный SQL-запрос в представлении списка Django REST ListAPI?
  • Как рассчитать сумму столбца в таблице SQL для заданной даты и исправления пропущенных значений с значениями ближайшей предыдущей даты?
  • Python работает медленнее при переходе по большому списку
  • Операция удаления python mysql не работает
  • подключение sqlalchemy к MSAccess
  •  
    Interesting Posts for Van-Lav

    как получить информацию о месте с места id в google-местах api для python

    Как установить цвет в Rectangle в Matplotlib?

    Многократное наследование Python: выбор, который super () вызывает

    Юникод печати Python не отображает правильные символы

    Простой (рабочий) рукописный распознавание цифр: как его улучшить?

    Как заменить отрицательные числа в кадре данных Pandas на ноль

    Как получить имя класса вызывающего абонента внутри функции другого класса в python?

    Как я могу сделать эту однострочную работу в DOS?

    sklearn dumping model с помощью joblib, сбрасывает несколько файлов. Какая из них является правильной моделью?

    Автоматически strip () все значения в WTForms?

    Cython набрал memoryviews: что они на самом деле?

    Более быстрый способ выполнить эту задачу Pandas, чем использовать приложение для большого набора данных?

    Что означают три знака стрелки («>>>») в питоне?

    Есть ли функция, которая проверяет, является ли символ в строке буквой в алфавите? (Swift)

    Вырыв из вложенных циклов

    Python - лучший язык программирования в мире.