我有一个模板' cart_summary.html
'当我在另一个模板{% include 'cart/cart_summary.html' %}
上显示为包含时,它呈现正常。
但是当我直接从视图函数(由ajax调用)渲染它时,我的上下文变量不会按预期呈现:
# views.py
def add_to_cart(request):
...
cart = request.session['cart']
...
return render_to_response('cart/cart_summary.html', {'cart': cart})
我的cart_summary.html模板 -
<a src="{% url cart-page pk=cart.pk %}">
<span> CART ({{ cart.count }}) £{{ cart.get_total }} </span>
<img id="cart_icon" src="{{ STATIC_URL }}images/cart_icon.tiff">
</a>
这是我回到浏览器的一些东西 -
<span> CART (<bound method ManyRelatedManager.count of <django.db.models.fields.related.ManyRelatedManager object at 0x106bfa150>>) £ </span>
<img id="cart_icon" src="images/cart_icon.tiff">
我需要做些什么才能获得正确呈现的字符串?
答案 0 :(得分:6)
您的方法是返回方法而不是值。
可能会返回queryset.count
而不是queryset.count()
答案 1 :(得分:2)
经过几个小时的调试,一些非常糟糕的代码(我的代码),我发现了错误。它实际上是在Cart模型中。编写了count函数,以便它返回一个方法而不是方法的输出
def count(self):
return self.items.count
应该是
def count(self):
self.items.count()
由于它被转换为html安全代码(我和我的代码中的所有其他错误),我被抛弃了气味。
答案 2 :(得分:0)
试试这个......
from django import template
return render_to_response('cart/cart_summary.html', {'cart': cart}, context_instance = template.RequestContent(request))