Python Django 1.7迁移-日期时间类型错误
我这里有一个大问题,我只是不能迁移我的数据库,因为我想。我测试了很多东西(甚至直接在数据库中编写…)。它使用Django 1.7.1运行,我的数据库使用Sqlite3存储。这就是我的问题: 我有一个这样的模型:Python Django 1.7迁移-日期时间类型错误,python,django,datetime,migration,Python,Django,Datetime,Migration,我这里有一个大问题,我只是不能迁移我的数据库,因为我想。我测试了很多东西(甚至直接在数据库中编写…)。它使用Django 1.7.1运行,我的数据库使用Sqlite3存储。这就是我的问题: 我有一个这样的模型: from django.db import models import datetime class UserUsingTime(models.Model): userid = models.CharField(max_length = 30) using_time =
from django.db import models
import datetime
class UserUsingTime(models.Model):
userid = models.CharField(max_length = 30)
using_time = models.DateTimeField(default = datetime.time())
(我想做的事情是存储一个计时器。例如,可能是比赛中的所有时间。)
我在模型末尾添加了这一行:
app_name = models.CharField(max_length = 20, null = True)
然后我运行python manage makemigrations my_app_name
,结果如下:
Migrations for 'my_app_name':
0003_userusingtime_app_name.py:
- Add field app_name to userusingtime
所以现在一切都很好:)但是当我尝试运行python manage migrate
时,我会遇到很多错误行:
Operations to perform:
Apply all migrations: admin, contenttypes, my_app_name, auth, sessions
Running migrations:
Applying my_app_name.0003_userusingtime_app_name...Traceback (most recent call last):
File "./manage.py", line 8, in
execute_from_command_line(sys.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 377, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 288, in run_from_argv
self.execute(*args, **options.__dict__)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 338, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/migrate.py", line 160, in handle
executor.migrate(targets, plan, fake=options.get("fake", False))
File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/executor.py", line 63, in migrate
self.apply_migration(migration, fake=fake)
File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/executor.py", line 97, in apply_migration
migration.apply(project_state, schema_editor)
File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/migration.py", line 107, in apply
operation.database_forwards(self.app_label, schema_editor, project_state, new_state)
File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/operations/fields.py", line 37, in database_forwards
field,
File "/usr/local/lib/python2.7/dist-packages/django/db/backends/sqlite3/schema.py", line 167, in add_field
self._remake_table(model, create_fields=[field])
File "/usr/local/lib/python2.7/dist-packages/django/db/backends/sqlite3/schema.py", line 128, in _remake_table
self.create_model(temp_model)
File "/usr/local/lib/python2.7/dist-packages/django/db/backends/schema.py", line 209, in create_model
definition, extra_params = self.column_sql(model, field)
File "/usr/local/lib/python2.7/dist-packages/django/db/backends/schema.py", line 121, in column_sql
default_value = self.effective_default(field)
File "/usr/local/lib/python2.7/dist-packages/django/db/backends/schema.py", line 184, in effective_default
default = field.get_db_prep_save(default, self.connection)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/__init__.py", line 627, in get_db_prep_save
prepared=False)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/__init__.py", line 1286, in get_db_prep_value
value = self.get_prep_value(value)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/__init__.py", line 1269, in get_prep_value
value = super(DateTimeField, self).get_prep_value(value)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/__init__.py", line 1171, in get_prep_value
return self.to_python(value)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/__init__.py", line 1228, in to_python
parsed = parse_datetime(value)
File "/usr/local/lib/python2.7/dist-packages/django/utils/dateparse.py", line 70, in parse_datetime
match = datetime_re.match(value)
TypeError: expected string or buffer
所以我真的不知道下一步该怎么办。。。另外,似乎有一个datetime
错误,我无法解释,因为我没有在我的模型中触摸任何datetime
对象。。。真奇怪
请帮我解决这个问题:)
我提前感谢各位(Y) 您的
使用\u time
字段定义有错误。Django在抱怨,因为您试图在datetime
容器中存储time
对象
DateTimeField
对于您试图表示的内容(时间长度)来说,它是一种错误的字段。您可以将其切换到时间字段
,或者只需使用浮动字段
或整数字段
来存储秒数或毫秒数
(为什么现在只是抛出一个迁移错误?我想这是因为Django的早期版本中没有发现这个错误,这是您在1.7中尝试的第一次真正的迁移(即不是最初的假迁移)。不,我想做的是存储一个计时器。例如,在一场比赛中,Like可能一直都是。我想存储这种数据。所以我使用了DateTimeField。设置为默认值的datetime.time()表示默认情况下它将设置为零。不过还是非常感谢:)好的,非常感谢!我将以毫秒为单位存储我的数据,然后:D,对不起,我不能投票了。。。(声誉太低):(