2015-07-01 4 views
1

мой models.py:матч = time_re.match (значение) TypeError: Ожидаемая строка или буфер

class Attendancename(models.Model): 
    teacher_name = models.ForeignKey(Teachername) 
    date = models.DateField('Date') 
    intime = models.TimeField('IN-TIME') 
    outtime = models.TimeField('OUT-TIME') 
    hours = models.TimeField('Working Hours') 
    def __str__(self): 
     return "%s" %self.teacher_name 

Я работаю на Windows-7, я добавил поле с именем hours затем при выполнении миграции django просит меня предоставить одноразовое значение по умолчанию, я предоставляю '0'. После этого я попытался перенести свои изменения, тогда он дает мне выше traceback (я не могу скопировать всю трассировку).

Я попытался удалить поле и снова вставить снова, но django снова и снова подсказывает мне такую ​​же ошибку выше. Может ли кто-нибудь рассказать мне, как это исправить?

Я удалил файл миграции и после этого запускаю команды 'python manage.py makemigrations' и 'python manage.py migrate', но это никак не влияет. Я также использовал 'syncdb'. Пожалуйста, предоставьте некоторое решение.

ответ

0

Откройте вашу базу данных, а затем откройте таблицу django_migrations, удалите строки, содержащие имя миграции и после строк, затем заново создайте миграцию и установите допустимое значение.
Примечание: вы можете установить значение по умолчанию, прежде чем создать значение по умолчанию, подобное ниже:

class Attendancename(models.Model): 
    teacher_name = models.ForeignKey(Teachername) 
    date = models.DateField('Date', auto_now=True) 
    intime = models.TimeField('IN-TIME', default=datetime.time(0)) 
    outtime = models.TimeField('OUT-TIME', default=datetime.time(0)) 
    hours = models.TimeField('Working Hours', default=datetime.time(0)) 
    def __str__(self): 
     return "%s" %self.teacher_name 
+0

Но я использую SQLite, которая встроена в Джанго. Я не знаю, где я должен открыть db api. Должен ли я удалить файл миграции? –

+0

Используйте программу sqlite-man или другую программу управления sqlite, да, вы должны удалить старый файл миграции. также вы можете установить значение 'default' для поля' hour', а затем запустить команду './manage.py makemigrations'. – Mohsen

+0

Как я могу установить другую базу данных, а затем sqlite, например Postgre Sql? по моему текущему проекту. Можно ли это сделать? –

Смежные вопросы