1

「Django ecommerce 入門」の本を読んでいますが、すべてのページに「カートに入れる」リンクを表示しようとしています。

私はこれerror: 'str' object has no attribute 'session'と行を取得します

"{% cart_box request%}"HTML の がこのエラーで強調表示されます。

これはHTMLです

{% load catalog_tags %}

<div class="cart_box">

    {% cart_box request %}

</div>

{% if hour == 7 or hour == 9 or hour == 12 %}   

Order time = {{hour}}

これがビューです。

def menu_hour(request,hour):

    #set the test cookie
    request.session.set_test_cookie()

    hour = int(hour)
    food = Food.objects.all()
    output = ', '.join([f.name for f in food])

    steak = Food.objects.get(name="Steak and Egg Burrito")
    steak.price = 15
    steak.save()

    queso = Food.objects.get(name="Queso Burrito")
    queso.time = hour

    food_dict = {"steak": steak, "queso": queso, "hour":hour}
    return render_to_response('menu_hour.html', food_dict, context_instance=RequestContext(request))

これはカタログタグです

from django import template 
from cart import cart

register = template.Library()

@register.inclusion_tag("tags/cart_box.html") 
def cart_box(request):
    cart_item_count = cart.cart_distinct_item_count(request) 
    return {'cart_item_count': cart_item_count }

これはカタログタグの HTML です

{% with cart_item_count as cart_count %} 
    <a href="{% url show_cart %}">
        Shopping Cart
        <br />
        {{ cart_count }} Item{{ cart_count|pluralize }}
    </a>
{% endwith %}
4

1 に答える 1

3

辞書の「リクエスト」をテンプレートに渡していなかったからです。

于 2012-07-27T13:18:19.913 に答える