我在模型中添加了一些新字段,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