当我使用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:
答案 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解决了该问题!
感谢您的帮助。