【发布时间】:2011-07-17 18:05:48
【问题描述】:
我在尝试对两个 int 值求和时遇到此错误:
if dups.count() > 0:
for item in dups:
pi.quantity = pi.quantity+item.quantity
pi 和 dups 都是同一模型的实例:
class PurchaseItem(models.Model):
picture = models.ForeignKey(Picture, null=False)
paperType = models.ForeignKey(paperType, null=False)
printSize = models.ForeignKey(printSize, null=False)
quantity = models.IntegerField(default=1, validators=[validators.MinValueValidator(1)])
price = models.DecimalField(decimal_places=2,max_digits=8)
dateCreated = models.DateTimeField(null=False)
sessionKey = models.ForeignKey(Session, to_field="session_key", null=False)
user = models.ForeignKey(User,null=True)
def __unicode__(self):
return self.id
为什么 int 不够好?
如果我用 str() 包装值或使用它们的 .str() 表示,它并不能完全满足我的需要。 1 和 1 将在 11 之前而不是 2。
【问题讨论】:
-
request.GET 是否提交了这些值之一?如果是这样,来自 get dict 的所有项目都是字符串,您将不得不将其显式转换为 int。 ftr request.POST 做同样的事情。