用户中心,收货地址

本页主要有两方面需要处理

》收货地址的显示,get请求

》表单的提交,可用post请求

表单的模板页处理

》先让模板页的界面变继承一下

参考 user_center_info页

继承一个母版

重写一个右侧的块

图示为,要参考的代码

》继承

关注 user_center_info 的right_content里包的div的样式,复制一下

》来到用户中心的地址页、

通过搜索,快速定位到盒子

盒子收起来

前后都删掉

继承一个

重写块

试试效果


页面正常显示

模板页中,表单的完善

提交方式改为post提交

给控件添加name值

注意,post提交加上csrf_token

》小结

  • 表单用post请求发送
  • 给表单控件添加name值
  • post表单需要加csrf_token,防止跨域伪造的请求

视图类回顾

》原来的

仅仅只做了页面的渲染

通过get方法来渲染显示页面

可是如果用户提交数据,会走post方式

所以要新增post方法

视图类的post方法

》先写好逻辑

》开始完善功能

》接收数据

》校验数据

验证空数据

验证手机格式

得到正则式,直接使用

》业务处理

先上逻辑

        # 业务处理# 保存用户提交的地址# 情况1,如果用户首次提交地址,让这个地址为默认地址# 情况2,如果已经有一个默认地址了,新提交的地址为非默认地址

地址表结构回顾

》开始

确保地址模型类导入

》获取登陆的用户对象

然后进行查询

查一查这个用户的地址数据中,有没有存在着默入地址的数据

如果有一个地址被设置为了默认地址

那么新增的地址就为非默认的

否则,就新增的这个地址就让它作为默认地址

        # 保存用户提交的地址# 情况1,如果用户首次提交地址,让这个地址为默认地址# 情况2,如果已经有一个默认地址了,新提交的地址为非默认地址# 获取用户行对象user = request.usertry:# 在地址表中查找,登陆的用户,地址中默认值为True的数据address = Address.objects.get(user=user, is_default=True)except Address.DoesNotExist:# 如果查找不到,会进入本分支address = None# 如果地址查到了,表明用户已经有默认地址了if address:is_default = Falseelse:is_default = True# 添加地址Address.objects.create(user=user,receiver=receiver,zip_code=zip_code,phone=phone,addr=addr,is_default=is_default)

》返回应答

跳转

跳转到了当前路径

又会被get方法处理

此时的get请求来自于post数据的提交后的跳转

get渲染的页面,应该要把数据库中已经存在着的数据渲染到页面中

因此,get方法不能够仅仅只是像原来那样了

视图类的get方法

当前get渲染的数据是假数据

做下修改

让get方法查询数据

把数据传递给模板

模板页的调改

把数据填入

测试功能

》访问地址页

效果完成

逻辑小结

get方法的逻辑

通过orm查询地址对象 = 模型类.object.get(用户名=登陆用户,是否默认=True)

dj鲜生-32-用户中心-收货地址相关推荐

  1. 美多商城之用户中心(收货地址3)

    三.收货地址 3.4 修改地址前后端逻辑 1. 修改地址接口设计和定义 1.请求方式 选项 方案 请求方法 PUT 请求地址 /addresses/(?P<address_id>\d+)/ ...

  2. 美多商城之用户中心(收货地址2)

    三.收货地址 3.2 新增地址前后端逻辑 1. 定义用户地址模型类 1.用户地址模型类 from meiduo_mall.utils.models import BaseModelclass Addr ...

  3. 美多商城之用户中心(收货地址1)

    三.收货地址 用户地址的主要业务逻辑有: 展示省市区数据 用户地址的增删改查处理 设置默认地址 设置地址标题 3.1 省市区三级联动 1. 展示收货地址界面 提示: 省市区数据是在收货地址界面展示的, ...

  4. dj鲜生-33-用户中心-左侧链接与样式的完成

    需求说明 情况介绍 页面不同,对应的文字会亮起来 现在要实现这个效果 例如,现在是地址页 要让收货地址亮起来 思路 用户中心都是继承自模板 只需要在模板中添加判断即可 >如何添加判断? 让视图函 ...

  5. dj鲜生-31-用户中心-功能需求分析

    用户个人信息 >需要 基本信息 最近浏览 全部订单 需要全部订单信息 地址 获取用户的收件地址

  6. 微信小程序开发之——个人中心-收货地址(9)

    一 概述 个人详情页对应的页面为:pages/address/address 页面搭建 页面逻辑 二 页面搭建 2.1 布局文件(address.wml) <view class="l ...

  7. 微信公众号获取微信用户共享收货地址

    wx.openAddress({ success: function (res) { var userName = res.userName; // 收货人姓名 var postalCode = re ...

  8. 移动商城第五篇(用户模块)【用户登陆、回显用户、拦截器、收货地址】

    移动商城[用户登陆.回显用户] 我们来实现用户登陆的功能: 当点击的时候,出来的是一个弹出框,我们想要切换成一个页面. 找到对应的事件.切换成我们的页面就行了. $("#loginAlert ...

  9. Django项目实践(商城):十一、收货地址

    (根据居然老师直播课内容整理) 一.页面功能简介 在"用户中心"的任一界面,点击左边"收货地址"后,显示下面界面 此界面包括以下4个功能: 新增收货地址 删除当 ...

最新文章

  1. 老码农90%的程序猿都是瞎努力,这份路线教你成为高手!
  2. Tomaso Poggio:深度学习需要从炼金术走向化学
  3. linux运维人员必会运维工具
  4. ❗HTML引入JavaScript的三种常用方式汇总❗
  5. mysql一对多前端实现_MySQL实现一对多查询的代码示例
  6. struts 模块化开发学习
  7. ERROR 2384 — [ main] o.s.boot.SpringApplication : Application run failed
  8. golang日志输出
  9. silverlight 一些写法小计
  10. 【Pre蓝桥杯嵌入式】【STM32】Unkown device
  11. I - 免费馅饼-图画详细解析
  12. Extjs TreeNode的图标元素。 (节点图标, expand的加减号)
  13. python课程-Python课程
  14. openCV5-getTickCount
  15. 视频教程-【曾贤志】Excel函数视频教程-Office/WPS
  16. 银行流水、财报、年报、电费分割单等各类文档一键提取,达观表格提取工具再升级!
  17. 安装MySQL出现:无法定位序数4699于动态链接库 ...\bin\mysqld.exe
  18. 这几款手机安全浏览器,好用不止一点点
  19. 莫名其妙CSDN不让我发帖子了。看来10年的老水手我该离开CSDN了。
  20. 微信小程序实践——实验4高校新闻网

热门文章

  1. layui入门基础:资源汇总
  2. lisp提取长方形坐标_用 Python 对图片主体轮廓进行提取、颜色标记、并计算区域面积...
  3. 函数返回结构体指针_9.3 结构体指针
  4. 小白猿简洁好看的个人介绍单页HTML5源码
  5. @Valid不起效,发现BindingResult读取不到Error信息
  6. 查看mysql 更新命令_MySQL UPDATE 查询
  7. PHP内核通用网站后台权限管理系统源码
  8. SpringBoot集成logback彩色日志配置以及banner启动设置(炫酷到爆炸!)
  9. 安装Linux操作系统完成必做几件事
  10. 制作自定义工作流(WWF)设计器