即使设置了值:/ admin / products / product / 1 / change /参数中的TypeError也必须为int或float

时间:2019-06-16 14:14:05

标签: python django-models

当我使用models.DecimalField并指定(max_digits = 10,decimal_places = 2)时,在尝试访问它时,在/ admin / products / product / 1 / change / argument必须为int或float时收到错误TypeError通过管理页面。

如果我删除(max_digits = 10,decimal_places = 2)并仅将其放入TextField(),则它可以工作,因此models.DecimalField(max_digits = 10,decimal_places = 2)抛出并出错,但是models.TextField()没有。

有什么主意吗?

from django.db import models

class Product(models.Model):
    title = models.CharField(max_length=150)
    description = models.TextField()
    price = models.DecimalField(max_digits=10, decimal_places=2)

错误:

TypeError at /admin/products/product/1/change/
argument must be int or float
Request Method: GET
Request URL:    http://localhost:8000/admin/products/product/1/change/
Django Version: 2.2.2
Exception Type: TypeError
Exception Value:    
argument must be int or float
Exception Location: 

2 个答案:

答案 0 :(得分:2)

要解决此错误,请从Migrations文件夹中以及项目文件夹中删除 pychache ,但将 init .py文件保持原样。还要删除sqlite数据库文件(db.sqlite3),然后退出服务器(如果正在运行),然后运行以下命令(在cmd中或在终端中)

python manage.py makemigrations 


python manage.py migrate

然后您需要再次创建超级用户。通过遵循命令

python manage.py createsuperuser(填写所有条目,然后运行服务器)

祝你好运:)

答案 1 :(得分:0)

通过增加有效的max_digits解决了该问题!

感谢您的帮助。