【发布时间】:2013-07-20 12:14:37
【问题描述】:
我正在尝试将__future__ import division 与 django 一起用于我的操作,但它在我的 views.py 中不起作用。
在 django shell 下它与 python shell 非常相似:
>>> from __future__ import division
>>> result = 37 / 3
>>> result
12.333333333333334
>>>
django views.py 中的相同内容在我尝试使用时不起作用。
error message: unsupported operand type(s) for /: 'int' and 'instancemethod'
views.py:
from __future__ import division
def show_product(request, product_slug, template_name="product.html"):
review_total_final = decimal.Decimal('0.0')
review_total = 0
product_count = product_reviews.count # the number of product rated occurences
if product_count == 0:
return review_total_final
else:
for product_torate in product_reviews:
review_total += product_torate.rating
review_total_final = review_total / product_count
return review_total_final
return review_total_final
models.py:
class ProductReview(models.Model):
RATINGS =((5,5),.....,)
product = models.ForeignKey(Product)
rating = models.PositiveSmallIntegerField(default=5, choices=RATINGS)
content = models.TextField()
product_reviews 是一个查询集。
任何帮助!!!
【问题讨论】:
-
你能在你的views.py中显示用法吗?
-
views.py def show_product(request, product_slug, template_name="product.html"): review_total_final = decimal.Decimal('0.0') review_total = 0 product_count = product_reviews.count #产品数量如果 product_count == 0 的评分出现:返回 review_total_final 其他:对于 product_reviews 中的 product_torate:review_total += product_torate.rating review_total_final = review_total / product_count #review_total_final= Ratestar.objects.filter(rate__gte = F(review_total) / F(product_count)) 返回review_total_final 返回 review_total_final
-
有很多错误。 .count 可能应该是 .count(),可能与 .rating 和 .rating() 相同,但缩进真的很时髦,说不出来。
-
这是 count 不是 count() ,在说很多错误之前尝试一下。好的
-
能否请您展示您的 product_review 模型?
rating字段的类型是什么?