前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django实战-信息资讯-订单视图

Django实战-信息资讯-订单视图

作者头像
小团子
发布2019-07-18 16:16:18
5320
发布2019-07-18 16:16:18
举报
文章被收录于专栏:数据云团数据云团

Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。

完成了订单基础模型,接下来是编写订单视图,订单页和订单支付。

① 订单视图

相对于之前的电商项目的订单视图Django实战-生鲜电商-订单支付,本次的更简单,在实现上也是直接从数据库中查询所有的订单。这样做有很大的一个缺点,对数据库查询性能要求更高和数据保密性差。

代码语言:javascript
复制
def index(request):
    payinfos = Payinfo.objects.all()
    context = {
        'payinfos': payinfos
    }
    return render(request, 'payinfo/payinfo.html', context=context)

② 订单支付

Django:在模板中获取当前url信息,确保项目配置里的context_processors 包含django.template.context_processors.request。

从 Django 1.9 开始, 默认是已经配置的。

  • 获取当前位置:

request.path

  • 获取带有 querystring 的 URL:

request.get_full_path

  • 获取完全的绝对路径:

request.build_absolute_uri

代码语言:javascript
复制
def payinfo_order(request):
    payinfo_id = request.GET.get('payinfo_id')
    payinfo = Payinfo.objects.get(pk=payinfo_id)
    buyed = PayinfoOrder.objects.filter(buyer=request.user, payinfo=payinfo, status=2)
    if buyed:
        return redirect(reverse("payinfo:download_payinfo")+"?payinfo_id=%s" % payinfo.pk)

    order = PayinfoOrder.objects.create(buyer=request.user, amount=payinfo.price, payinfo=payinfo, status=1)
    context ={
        'payinfo': payinfo,
        'order': order,
        'notify_url': request.build_absolute_uri(reverse('payinfo:notify_view')),
        'return_url': request.build_absolute_uri(reverse('payinfo:download_payinfo')+"?payinfo_id=%s" % payinfo.pk)
    }
    return render(request, 'payinfo/create_order.html', context=context)
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据云团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Django:在模板中获取当前url信息,确保项目配置里的context_processors 包含django.template.context_processors.request。
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档