Python Django:datetime.datetime到十进制不支持迁移
我使用的是Django 1.9 alpha或1.8,效果与Python 3.4.3相同。我有下面列出的基本型号。我正在尝试使用新的方法来创建和填充DB迁移Python Django:datetime.datetime到十进制不支持迁移,python,django,Python,Django,我使用的是Django 1.9 alpha或1.8,效果与Python 3.4.3相同。我有下面列出的基本型号。我正在尝试使用新的方法来创建和填充DB迁移 from django.db import models class services(models.Model): service = models.CharField(max_length=150) type = models.CharField(max_length=150) purchase_date = m
from django.db import models
class services(models.Model):
service = models.CharField(max_length=150)
type = models.CharField(max_length=150)
purchase_date = models.DateField('purchase date')
renew_date = models.DateField('renew date')
end_date = models.DateField('end date')
price = models.DecimalField(max_digits=8, decimal_places=2, null=True, blank=True)
supplier = models.CharField(max_length=100)
variant = models.CharField(max_length=200)
web_link = models.URLField(verbose_name="web link", null=True, blank=True)
一旦我进行了“makemigrations”,然后进行了“migrate”,我就会得到一个错误。我真的可以在谷歌上找到任何Django文档的参考资料
你知道怎么了吗?我在两台不同的PC上做了这个,我想这是Django/Python错误,但运气不好
错误:
python manage.py迁移
这似乎是您应用程序中的第二次迁移,表明这是为了更改您的模型。只是猜测一下,你的价格域以前是DateTimeField吗?是的。。。你是对的。原因是由于空字段,我在历史记录/缓存中有几次迁移失败。更正所有空字段故障后,新的DateTimeFields将应用于旧字段。清除旧的迁移完成了这项工作。谢谢
> Operations to perform: Apply all migrations: sessions, admin, auth,
> contenttypes, extservices Running migrations: Rendering model
> states... DONE Applying
> extservices.0002_auto_20151018_1742...Traceback (most recent call las
> t): File "manage.py", line 10, in <module>
> execute_from_command_line(sys.argv) File "C:\Python34\lib\site-packages\django\core\management\__init__.py",
> line 350, in execute_from_command_line
> utility.execute() File "C:\Python34\lib\site-packages\django\core\management\__init__.py",
> line 342, in execute
> self.fetch_command(subcommand).run_from_argv(self.argv) File "C:\Python34\lib\site-packages\django\core\management\base.py", line
> 348, in run_from_argv
> self.execute(*args, **cmd_options) File "C:\Python34\lib\site-packages\django\core\management\base.py", line
> 399, in execute
> output = self.handle(*args, **options) File "C:\Python34\lib\site-packages\django\core\management\commands\migrate.py
> ", line 200, in handle
> executor.migrate(targets, plan, fake=fake, fake_initial=fake_initial) File
> "C:\Python34\lib\site-packages\django\db\migrations\executor.py", line
> 92 , in migrate
> self._migrate_all_forwards(plan, full_plan, fake=fake, fake_initial=fake_ini tial) File
> "C:\Python34\lib\site-packages\django\db\migrations\executor.py", line
> 12 1, in _migrate_all_forwards
> state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_ initial) File
> "C:\Python34\lib\site-packages\django\db\migrations\executor.py", line
> 19 8, in apply_migration
> state = migration.apply(state, schema_editor) File "C:\Python34\lib\site-packages\django\db\migrations\migration.py",
> line 1 23, in apply
> operation.database_forwards(self.app_label, schema_editor, old_state, projec t_state) File
> "C:\Python34\lib\site-packages\django\db\migrations\operations\fields.py"
> , line 62, in database_forwards
> field, File "C:\Python34\lib\site-packages\django\db\backends\sqlite3\schema.py",
> lin e 221, in add_field
> self._remake_table(model, create_fields=[field]) File "C:\Python34\lib\site-packages\django\db\backends\sqlite3\schema.py",
> lin e 103, in _remake_table
> self.effective_default(field) File "C:\Python34\lib\site-packages\django\db\backends\base\schema.py",
> line 2 10, in effective_default
> default = field.get_db_prep_save(default, self.connection) File "C:\Python34\lib\site-packages\django\db\models\fields\__init__.py",
> line 1628, in get_db_prep_save
> return connection.ops.adapt_decimalfield_value(self.to_python(value), File
> "C:\Python34\lib\site-packages\django\db\models\fields\__init__.py",
> line 1599, in to_python
> return decimal.Decimal(value)
> TypeError: conversion from datetime.datetime to Decimal is not supported