当点击我发现了AdminPanel对象车或CartItem:
模板渲染期间发生错误
在模板d:\ virtual_envs \ stickers_gallito \ lib中\站点包\ django的\的contrib \管理员\模板\管理员\ base.html文件,在线路错误0
str 返回了非字符串(类型为int)
在shell中查询这些对象时,我得到了:
>>> carts = Cart.objects.all()
>>> carts
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "D:\virtual_envs\stickers_gallito\lib\site-packages\django\db\models\query.py", line 247, in __repr__
return '<%s %r>' % (self.__class__.__name__, data)
File "D:\virtual_envs\stickers_gallito\lib\site-packages\django\db\models\base.py", line 503, in __repr__
return '<%s: %s>' % (self.__class__.__name__, self)
TypeError: __str__ returned non-string (type int)
models.py :
class Cart(models.Model):
cart_id = models.CharField(max_length=100)
date_added = models.DateField(auto_now_add=True)
class Meta:
db_table = 'Cart'
ordering = ['date_added']
def __str__(self):
return self.id
有什么问题吗?
答案 0 :(得分:2)
该异常为您提供了有关问题所在的线索:
TypeError:
__str__
返回了非字符串(类型int
)
您已经定义了一个__str__
方法,该方法返回整数ID,而不是字符串,因此返回错误。您需要将值强制转换为字符串:
def __str__(self):
return str(self.id)
还请注意,self.id
是在数据库中的自动生成的行ID,并从不同的self.cart_id
。你可能想用后者代替,如果这是你用什么来识别你的车。