我在我的模型中添加了一个DecimalField
dec_field = models.DecimalField(max_digits=6, decimal_places=3)
在我尝试使用South创建自动模式移植文件后,我尝试现在指定一个用于现有列的一次性值,但是......
? Please enter Python code for your one-off default value.
? The datetime module is available, so you can do e.g. datetime.date.today()
>>> Decimal('15.4')
! Invalid input: name 'Decimal' is not defined
>>> from decimal import *
! Invalid input: invalid syntax (<string>, line 1)
我可以指定一个十进制默认值(无损,所以浮点数不理想),如果是这样,怎么办?
答案 0 :(得分:3)
我试过这样做:
__import__('decimal').Decimal('0.445')
并且工作
但这很奇怪, 最正确的 只会放一个字符串 它会自动转换
或导入十进制 因为南迁移创造了
答案 1 :(得分:1)
接受的答案确实很奇怪。
正确的答案是,根据设计,南方迁移是用户可编辑的,schemamigration --auto
并不总能完成一项完美的工作。在这种情况下,我只需输入一个易于在文件中找到的值(例如'0.445'
),然后编辑文件,为Decimal
添加正确的导入并修改代码以使用{ {1}}而不是生成的迁移中的值。