我在模型中添加了一些新字段,django建议我添加默认值或在模型中设置一些默认参数。我将datetime对象添加为值,但值应该是int或数字。现在我不能同步数据库,因为类型错误。我试图删除一些对象,这是这个模型的实例,我做了一些改变,但它并没有帮助我。TypeError与模型字段
我现在可以如何修复我的模型?!
这是回溯
Applying card.0026_auto_20150104_1323...Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "C:\Users\RIK\Envs\la\lib\site-packages\django\core\management\__init__.p
y", line 385, in execute_from_command_line
utility.execute()
File "C:\Users\RIK\Envs\la\lib\site-packages\django\core\management\__init__.p
y", line 377, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Users\RIK\Envs\la\lib\site-packages\django\core\management\base.py",
line 288, in run_from_argv
self.execute(*args, **options.__dict__)
File "C:\Users\RIK\Envs\la\lib\site-packages\django\core\management\base.py",
line 338, in execute
output = self.handle(*args, **options)
File "C:\Users\RIK\Envs\la\lib\site-packages\django\core\management\base.py",
line 533, in handle
return self.handle_noargs(**options)
File "C:\Users\RIK\Envs\la\lib\site-packages\django\core\management\commands\s
yncdb.py", line 27, in handle_noargs
call_command("migrate", **options)
File "C:\Users\RIK\Envs\la\lib\site-packages\django\core\management\__init__.p
y", line 115, in call_command
return klass.execute(*args, **defaults)
File "C:\Users\RIK\Envs\la\lib\site-packages\django\core\management\base.py",
line 338, in execute
output = self.handle(*args, **options)
File "C:\Users\RIK\Envs\la\lib\site-packages\django\core\management\commands\m
igrate.py", line 160, in handle
executor.migrate(targets, plan, fake=options.get("fake", False))
File "C:\Users\RIK\Envs\la\lib\site-packages\django\db\migrations\executor.py"
, line 63, in migrate
self.apply_migration(migration, fake=fake)
File "C:\Users\RIK\Envs\la\lib\site-packages\django\db\migrations\executor.py"
, line 97, in apply_migration
migration.apply(project_state, schema_editor)
File "C:\Users\RIK\Envs\la\lib\site-packages\django\db\migrations\migration.py
", line 107, in apply
operation.database_forwards(self.app_label, schema_editor, project_state, ne
w_state)
File "C:\Users\RIK\Envs\la\lib\site-packages\django\db\migrations\operations\f
ields.py", line 37, in database_forwards
field,
File "C:\Users\RIK\Envs\la\lib\site-packages\django\db\backends\sqlite3\schema
.py", line 167, in add_field
self._remake_table(model, create_fields=[field])
File "C:\Users\RIK\Envs\la\lib\site-packages\django\db\backends\sqlite3\schema
.py", line 74, in _remake_table
self.effective_default(field)
File "C:\Users\RIK\Envs\la\lib\site-packages\django\db\backends\schema.py", li
ne 184, in effective_default
default = field.get_db_prep_save(default, self.connection)
File "C:\Users\RIK\Envs\la\lib\site-packages\django\db\models\fields\related.p
y", line 1735, in get_db_prep_save
return self.related_field.get_db_prep_save(value, connection=connection)
File "C:\Users\RIK\Envs\la\lib\site-packages\django\db\models\fields\__init__.
py", line 627, in get_db_prep_save
prepared=False)
File "C:\Users\RIK\Envs\la\lib\site-packages\django\db\models\fields\__init__.
py", line 907, in get_db_prep_value
value = self.get_prep_value(value)
File "C:\Users\RIK\Envs\la\lib\site-packages\django\db\models\fields\__init__.
py", line 915, in get_prep_value
return int(value)
TypeError: int() argument must be a string or a number, not 'datetime.datetime'
这是模型代码部分:
我加入CollectionItem对象所有者场:
class CollectionItem (models.Model):
card = models.ForeignKey(Card)
golden = models.BooleanField(default=False)
count = models.IntegerField(default=0)
level = models.IntegerField(default=1)
owner = models.ForeignKey(User, related_name='collectionCards')
@property
def price(self):
return self.card.price
class Collection (models.Model):
owner = models.ForeignKey(User, related_name='collections')
items = models.ManyToManyField(CollectionItem, through='CollectionCollector')
class CollectionAdmin (admin.ModelAdmin):
fields = ['owner'] admin.site.register(Collection, CollectionAdmin)
class CollectionCollector (models.Model):
item = models.ForeignKey(CollectionItem, related_name='collection_item')
collection = models.ForeignKey(Collection)
中找到类似的解决方案链接。这将有助于查看生成错误的代码。 – Joel 2015-01-04 10:44:57
这只是命令行中的一个syncdb命令。所有的代码都在咆哮。现在我可以运行服务器。但是代码没有看到我早期添加的新字段,并且我不能同步数据库,因为此错误。 – 2015-01-04 10:48:16
参数'value'是'datetime.datetime'类型,不能转换为'int',但是@Joel表示我们需要查看代码。 – 2015-01-04 10:48:47