我的django python函数运行不正确

我的django python函数运行不正确,django,django-templates,Django,Django Templates,我目前正在开发一个电子商务web应用程序,并决定使用《Django电子商务入门手册》。我正在关注内容并以自己的方式实现它,但是我在一些没有运行的函数上遇到了一些问题。 以下是我认为问题出在哪里的文件应用程序; 1. 购物车应用程序型号.py: from django.db import models from menu_items.models import Item from smartmin.models import SmartModel import django.db.models.o

我目前正在开发一个电子商务web应用程序,并决定使用《Django电子商务入门手册》。我正在关注内容并以自己的方式实现它,但是我在一些没有运行的函数上遇到了一些问题。 以下是我认为问题出在哪里的文件应用程序; 1. <代码>购物车应用程序
型号.py

from django.db import models
from menu_items.models import Item
from smartmin.models import SmartModel
import django.db.models.options as options
options.DEFAULT_NAMES = options.DEFAULT_NAMES + ('augment_quatity','name','price','get_absolute_url','total',)

class OrderItem(SmartModel):
    order_id = models.CharField(max_length=50)
    date_added = models.DateTimeField(auto_now_add=True)
    quantity = models.IntegerField(default=0)
    item = models.ManyToManyField(Item)

    class Meta:
        db_table='order_items'

        def __unicode__(self):
            return "%s" % (self.order_id)

        def total(self):
            return self.quatity *self.item.price
        def name(self):
            return self.item.name
        def price(self):
            return self.item.price
        def get_absolute_url(self):
            return self.item.get_absolute_url()
        # incase user orders same item twice we jus add on the quantity
        def augment_quatity(self, quantity):
            self.quatity = self.quantity + int(quantity)
            self.save
同一
应用程序中的
orders.py

from cart.models import OrderItem
#from cart.models import order_id
from menu_items.models import Item
from django.shortcuts import get_object_or_404
from django.http import HttpResponseRedirect
import decimal
import random

ORDER_ID_SESSION_KEY = 'order_id'

# get the current user's cart id, sets new one if blank
def _order_id(request):
    if request.session.get(ORDER_ID_SESSION_KEY,'') == '':
        request.session[ORDER_ID_SESSION_KEY] = _generate_cart_id
    return request.session[ORDER_ID_SESSION_KEY]
def _generate_cart_id():
    order_id =''
    characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*()'
    order_id_length = 100
    for y in range(order_id_length):
        order_id += characters[random.randint(0,len(characters)-1
        )]
    return order_id
# return all items from the current user's order
def get_order_items(request):
    return OrderItem.objects.filter(order_id=_order_id(request))
# add an item to order
def add_to_order(request):  
    postdata = request.POST.copy()
    #get item slug from post data, return blank if empty
#   item_slug = postdata.get('item_slug','')
    #get quantity added, return 1 if empty
    quantity = postdata.get('quantity',1)
    # fetch the item or return  missing page error_message
    i = get_object_or_404(Item,)
    # get items in order
    order_items = get_order_items(request)
    item_in_orders = False
    # check to see if item is already in cart
    for order_item in order_items:
        if order_item.item.id == i.id:
            #update the quantity if found
            order_item.augment_quantity(quantity)
    item_in_order = True
    if not item_in_order:
        # creat and save a new order item
        oi = OrderItem()
        oi.item = i
        oi.quantity = quantity
        oi.order_id = _order_id(request)
        oi.save()
2.
live app
views.py

def show_order(request):
    if request.method == 'POST':
        postdata = request.POST.copy()
        if postdata['submit'] == 'Remove':
            order.remove_from_order(request)
        if postdata['submit'] == 'Update':
            order.update_order(request)
    order_items = order.get_order_items(request)
    page_title  = 'F4L order' 
    order_subtotal = order.order_subtotal(request)
    return render_to_response('public/order.html',context_instance=RequestContext(request))
功能不起作用的模板

{% extends "base.html" %}
{% block content %}
{% load menu_tags %}
<div style="height:30px">
 {% order_box request %}
</div>
<table summary="Your menu order" id="menu_order">
   <caption>Your F4L Orders</caption>
   <thead>
    <tr>
     <th scope="col">Item</th>
     <th scope="col">Price</th>
     <th scope="col" class="right">Total</th>
    </tr>
   </thead>
   <tfoot>
   <tr>
    <th class="right" colspan="2">
     Order Subtotal:
    </th>
    <th class="right">
    {{order_subtotal}}<span> frw</span>
    </th>
   </tr>
   {% if order_items %}
   <tr>
    <th class="right" colspan="2">
     <a href="/url/to/checkout/">Checkout Now</a>
    </th>
   </tr>
   {% endif %}
   </tfoot>
   <tbody>
    {% if order_items %}
     {% for item in order_items %}
    <tr>
     <td>

       {{ item.name }}

     </td>
     <td>{{ item.price }}<span> frw</span></td>
     <td class="right">
     <form method="post" action="." class="order">
     <label for="quantity">Quantity:</label>
     <input type="text" name="quantity" value="{{ item.quantity }}" id="quantity" size="2" class="quantity" max_length="5" />
     <input type="hidden" name="item_id" value="{{ item.id }}" />
     </td>
     <td>
     <input type="submit" name="submit" value="update"/>
     </form>
     </td>
     <td>
     <form method="post" action="." class="order">
     <input type="hidden" name="item_id" value="{{ item.id }}" />
     </form>
     </td>
     <td>
     <form method="post" action="." class="order">
     <input type="hidden" name="item_id" value="{{ item.id}}" />
     <input type="submit" name="submit" value="Remove" />
     </form>
     </td>
     <td class="right">{{ item.total }}<span> frw</span></td>
    </tr>
     {% endfor %}
     {% else %}
    <tr>
    <td colspan="2" style="height:30px;">
     Your F4L order is empty.
    </td>
    </tr>
    {% endif %}
   </tbody>
</table>
{% endblock %}
{%extends“base.html”%}
{%block content%}
{%load menu_tags%}
{%order\u box request%}
您的F4L订单
项目
价格
全部的
订单小计:
{{order_subtotal}}frw
{%if订单\项目%}
{%endif%}
{%if订单\项目%}
{订单中项目的百分比\项目%}
{{item.name}
{{item.price}}frw
数量:
{{item.total}}frw
{%endfor%}
{%else%}
您的F4L订单为空。
{%endif%}
{%endblock%}
现在的问题是,上面的模板代码是用户提交表单后重定向到的页面,该表单包含他/她正在购买的商品的数量,但事实并非如此。在提交包含例如10个项目的表单后,我重定向到此页面(在模板上方),它正确加载,但不返回我提交的信息


我知道这很重要,但我确实需要您的帮助,并将非常感谢您的帮助。

在“显示顺序”视图中,您应该将变量作为字典传递给模板:

...
context_dict = {'order_items': order_items, 'order_subtotal': order_subtotal}
return render_to_response('public/order.html', context_dict, context_instance=RequestContext(request))

感谢它修复了一部分,
order subtotal返回0.00的值
,但其余的没有。因此,我认为问题在于
order\u items变量
@sneawo
dict
是python中的内置函数,您不应该使用这个词作为变量名。