基于Django的电子商务网站开发(连载35)

简介: 基于Django的电子商务网站开发(连载35)

3.3.3 删除订单


1urls.py

...
url(r'^delete_orders/(?P<orders_id>[0-9]+)/(?P<sign>[0-9]+)/$',  views.delete_orders),
...

1orders_id为删除的单个订单或者总订单id

2sign=1或者3表示删除单个订单。

3sign =2表示删除总订单。

4sign=1或者2表示从查看总订单进入删除。

5sign=3表示从查看单个订单进入删除。


2views.py

...
# 删除订单
# id=1,3删除单个订单,id=2删除总订单
# id=1,2从查看总订单进入,id=3从查看单个订单进入
def delete_orders(request,orders_id,sign):
    util = Util()
    username =  util.check_user(request)
    if  username=="":
        uf = LoginForm()
        return  render(request,"index.html",{'uf':uf,"error":"请登录后再进入"})
    else:
                  #如果删除单个订单
        if sign ==  "1" or sign=="3":
                           #通过主键获得单个订单的内容
            order_filter =  get_object_or_404(Order,id=orders_id)
                           #获得当前订单所属于的总订单
            orders_filter =  get_object_or_404(Orders,id=order_filter.order_id)
                           #删除这个单个订单
             Order.objects.filter(id=orders_id).delete()
            #判断这个总订单下是否还有没有商品
            judge_order =  Order.objects.filter(order_id = orders_filter.id)
                           #如果没有商品了
            if  (len(judge_order))==0:
                                     #删除这个订单所处于的总订单记录
                Orders.objects.filter(id=orders_filter.id).delete()
                                     #如果标记为3,返回商品列表页面
                if  sign=="3":
                    response  = HttpResponseRedirect('/goods_view/') # 跳入商品列表页面
                #如果标记为1,返回查看所有订单页面
                                     if  sign=="1":
                    response  = HttpResponseRedirect('/view_all_order/') # 跳入商品列表页面
            #如果还有商品,且标记为3,返回订单确认页面
                           elif  sign=="3":
                response =  HttpResponseRedirect('/view_order/'+str(orders_filter.id)+'/') # 跳入订单确认
            #否则返回所有订单页面
                           else:
                response =  HttpResponseRedirect('/view_all_order/') # 跳入查看所有订单
        #如果删除总订单
                  if sign ==  "2":
                           #删除单个订单
             Order.objects.filter(order_id=orders_id).delete()
                           #删除总订单
             Orders.objects.filter(id=orders_id).delete()
                           #返回查看所有订单页面
            response =  HttpResponseRedirect('/view_all_order/') # 跳入查看所有订单
        return response
...


1)登录用户通过判断语句ifsign == "1" or sign=="3"来就决定是否删除单独一个订单。


2)如果是删除单独一个订单。


通过语句order_filter = get_object_or_404(Order,id=orders_id),获得单独订单信息内容。

通过语句orders_filter =get_object_or_404(Orders,id=order_filter.order_id)获得当前订单所属于的总订单信息。

通过语句Order.objects.filter(id=orders_id).delete()中删除这个订单,需要注意的是如果这个订单所属的总订单都没有订单了,那么就必须把这个订单给删除。

通过语句judge_order = Order.objects.filter(order_id= orders_filter.id)判断这个订单所属的总订单是否没有订单了,如果判断语句if (len(judge_order))==0结果为真,那么通过语句Orders.objects.filter(id=orders_filter.id).delete()把这条订单所属于的总订单给删除,然后根据sign=="1"还是sign=="3"返回方法goods_view()view_order


3)如果ifsign=="2",也就是说删除的是总订单,先通过语句Order.objects.filter(order_id=orders_id).delete()删除这个总订单下的所有单个订单,然后通过和语句Orders.objects.filter(id=orders_id).delete()删除这个总订单,最后调用方法view_all_order()


4)删除单个订单可以从订单确认页面进入,也可以从查看所有订单页面进入。删除总订单只能从查看所有订单页面进入。参见图3-19和图3-20


3.模板

这里的模板为查看所有订单页面和订单确认页面,没有单独模板页面。


4.接口测试

1)测试用例

3-17为删除订单的测试用例。设计两个测试用例,一个是删除总的订单,另外一个是删除单个订单。


3-17 删除订单的测试用例

编号

描述

期望结果

1

删除当前建立的单个订单

删除成功,且在显示页面中不显示

2

删除当前建立的总个订单

删除成功,且在显示页面中不显示


2XML数据文件

orderConfig.xml后面加上。

...
<!--- 删除当前建立的单个订单 -->
         <case>
                  <TestId>order-testcase004</TestId>
                  <Title>订单信息</Title>
                  <Method>get</Method>
                  <Desc>删除当前建立的单个订单</Desc>
                  <Url>http://127.0.0.1:8000/delete_orders/0/1/</Url>
                  <InptArg></InptArg>
                  <Result>200</Result>
                  <CheckWord>NOT,订单id:0</CheckWord><!--- 检查单个订单是否被删除 -->
         </case>
         <!--- 删除当前建立的总个订单 -->
         <case>
                  <TestId>order-testcase005</TestId>
                  <Title>订单信息</Title>
                  <Method>get</Method>
                  <Desc>删除当前建立的总个订单</Desc>
                  <Url>http://127.0.0.1:8000/delete_orders/0/2/</Url>
                  <InptArg></InptArg>
                  <Result>200</Result>
                  <CheckWord>NOT,上海市外滩一号</CheckWord><!--- 检查总订单是否被删除 -->
         </case>
</node>


3)测试代码

测试代码保持不变。


星云测试

http://www.teststars.cc

奇林软件

http://www.kylinpet.com

联合通测

http://www.quicktesting.net


顾翔凡言:

      软件测试正在生病,而且病得不轻,自动化测试被要不吹得太火,要不一点都不会,自动化比不过开发、测试又找不到缺陷,丢了西瓜也捡不到芝麻。

目录
相关文章
|
3月前
|
前端开发 搜索推荐 算法
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
中草药管理与推荐系统。本系统使用Python作为主要开发语言,前端使用HTML,CSS,BootStrap等技术和框架搭建前端界面,后端使用Django框架处理应用请求,使用Ajax等技术实现前后端的数据通信。实现了一个综合性的中草药管理与推荐平台。具体功能如下: - 系统分为普通用户和管理员两个角色 - 普通用户可以登录,注册、查看物品信息、收藏物品、发布评论、编辑个人信息、柱状图饼状图可视化物品信息、并依据用户注册时选择的标签进行推荐 和 根据用户对物品的评分 使用协同过滤推荐算法进行推荐 - 管理员可以在后台对用户和物品信息进行管理编辑
94 12
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
|
7月前
|
搜索推荐 算法 前端开发
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
202 4
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
|
安全 测试技术 Python
基于Django的电子商务网站开发(连载39)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
75 0
基于Django的电子商务网站开发(连载39)
|
存储 安全 前端开发
基于Django的电子商务网站开发(连载37)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
154 0
基于Django的电子商务网站开发(连载37)
|
测试技术 Python
基于Django的电子商务网站开发(连载36)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
97 0
基于Django的电子商务网站开发(连载36)
|
XML 测试技术 数据库
基于Django的电子商务网站开发(连载34)
基于Django的电子商务网站开发(连载34)
68 0
基于Django的电子商务网站开发(连载34)
|
XML 测试技术 数据格式
基于Django的电子商务网站开发(连载33)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
97 0
基于Django的电子商务网站开发(连载33)
|
SQL XML 前端开发
基于Django的电子商务网站开发(连载40)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
184 0
|
测试技术 Python
基于Django的电子商务网站开发(连载38)
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
92 0
|
1月前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
175 45