Django:如何在 MySQL 中使用浮点精度而不是双精度

Jon*_*han 4 mysql django orm

models.FloatField在 MySQL 中创建一个 double。
是否可以以及如何创建浮点精度字段而不是双精度字段?

理由类似于拥有 SmallIntegerField的理由

Aks*_*hay 5

嗯,有比这更好的方法,而且更容易。当我在 django 中遇到以下 db_type() 方法时,我也想用我的数据库做同样的事情。

首先需要在django中通过继承Field类来创建一个自定义的Field

class customFloatField(models.Field): 
    def db_type(self,connection):
        return 'float'
Run Code Online (Sandbox Code Playgroud)

那么您可以将其用作模型类中的任何其他模型字段

number = customFloatField(null=True,blank=True)
Run Code Online (Sandbox Code Playgroud)

我试过了,这在 MySQL 中对我有用。要根据连接类型更改它,您必须检查 if 语句中的连接设置并进行相应更改。

https://docs.djangoproject.com/en/dev/howto/custom-model-fields/ 中提到了有关此的更多信息