2

テンプレート ' ' を持っていますが、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 }}) &pound;{{ cart.get_total }} </span>
    <img id="cart_icon" src="{{ STATIC_URL }}images/cart_icon.tiff">
</a>

そして、これはブラウザに返されるようなものです-

<span> CART (&lt;bound method ManyRelatedManager.count of &lt;django.db.models.fields.related.ManyRelatedManager object at 0x106bfa150&gt;&gt;) &pound; </span>
<img id="cart_icon" src="images/cart_icon.tiff">

適切にレンダリングされた文字列を取得するにはどうすればよいですか?

4

3 に答える 3

7

あなたのメソッドは値の代わりにメソッドを返しています。

おそらくそれはqueryset.count代わりに戻ってきていますqueryset.count()

于 2012-11-23T13:30:04.430 に答える
2

見事に貧弱なコード (私のコード) を数時間デバッグした後、エラーが見つかりました。それは実際にはカートモデルにありました。count 関数は、メソッドの出力ではなくメソッドを返すように記述されています。

def count(self):
    return self.items.count

になるはずだった

def count(self):
    self.items.count()

HTMLセーフコードに変換されていたという事実(それと私のコードの他のすべてのエラー)によって、私は匂いを放ちました。

于 2012-11-23T10:34:21.727 に答える
0

これを試して...

from django import template
return render_to_response('cart/cart_summary.html', {'cart': cart}, context_instance = template.RequestContent(request))
于 2012-11-22T16:48:26.023 に答える