dj鲜生-32-用户中心-收货地址
用户中心,收货地址
本页主要有两方面需要处理
》收货地址的显示,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-用户中心-收货地址相关推荐
- 美多商城之用户中心(收货地址3)
三.收货地址 3.4 修改地址前后端逻辑 1. 修改地址接口设计和定义 1.请求方式 选项 方案 请求方法 PUT 请求地址 /addresses/(?P<address_id>\d+)/ ...
- 美多商城之用户中心(收货地址2)
三.收货地址 3.2 新增地址前后端逻辑 1. 定义用户地址模型类 1.用户地址模型类 from meiduo_mall.utils.models import BaseModelclass Addr ...
- 美多商城之用户中心(收货地址1)
三.收货地址 用户地址的主要业务逻辑有: 展示省市区数据 用户地址的增删改查处理 设置默认地址 设置地址标题 3.1 省市区三级联动 1. 展示收货地址界面 提示: 省市区数据是在收货地址界面展示的, ...
- dj鲜生-33-用户中心-左侧链接与样式的完成
需求说明 情况介绍 页面不同,对应的文字会亮起来 现在要实现这个效果 例如,现在是地址页 要让收货地址亮起来 思路 用户中心都是继承自模板 只需要在模板中添加判断即可 >如何添加判断? 让视图函 ...
- dj鲜生-31-用户中心-功能需求分析
用户个人信息 >需要 基本信息 最近浏览 全部订单 需要全部订单信息 地址 获取用户的收件地址
- 微信小程序开发之——个人中心-收货地址(9)
一 概述 个人详情页对应的页面为:pages/address/address 页面搭建 页面逻辑 二 页面搭建 2.1 布局文件(address.wml) <view class="l ...
- 微信公众号获取微信用户共享收货地址
wx.openAddress({ success: function (res) { var userName = res.userName; // 收货人姓名 var postalCode = re ...
- 移动商城第五篇(用户模块)【用户登陆、回显用户、拦截器、收货地址】
移动商城[用户登陆.回显用户] 我们来实现用户登陆的功能: 当点击的时候,出来的是一个弹出框,我们想要切换成一个页面. 找到对应的事件.切换成我们的页面就行了. $("#loginAlert ...
- Django项目实践(商城):十一、收货地址
(根据居然老师直播课内容整理) 一.页面功能简介 在"用户中心"的任一界面,点击左边"收货地址"后,显示下面界面 此界面包括以下4个功能: 新增收货地址 删除当 ...
最新文章
- 老码农90%的程序猿都是瞎努力,这份路线教你成为高手!
- Tomaso Poggio:深度学习需要从炼金术走向化学
- linux运维人员必会运维工具
- ❗HTML引入JavaScript的三种常用方式汇总❗
- mysql一对多前端实现_MySQL实现一对多查询的代码示例
- struts 模块化开发学习
- ERROR 2384 — [ main] o.s.boot.SpringApplication : Application run failed
- golang日志输出
- silverlight 一些写法小计
- 【Pre蓝桥杯嵌入式】【STM32】Unkown device
- I - 免费馅饼-图画详细解析
- Extjs TreeNode的图标元素。 (节点图标, expand的加减号)
- python课程-Python课程
- openCV5-getTickCount
- 视频教程-【曾贤志】Excel函数视频教程-Office/WPS
- 银行流水、财报、年报、电费分割单等各类文档一键提取,达观表格提取工具再升级!
- 安装MySQL出现:无法定位序数4699于动态链接库 ...\bin\mysqld.exe
- 这几款手机安全浏览器,好用不止一点点
- 莫名其妙CSDN不让我发帖子了。看来10年的老水手我该离开CSDN了。
- 微信小程序实践——实验4高校新闻网
热门文章
- layui入门基础:资源汇总
- lisp提取长方形坐标_用 Python 对图片主体轮廓进行提取、颜色标记、并计算区域面积...
- 函数返回结构体指针_9.3 结构体指针
- 小白猿简洁好看的个人介绍单页HTML5源码
- @Valid不起效,发现BindingResult读取不到Error信息
- 查看mysql 更新命令_MySQL UPDATE 查询
- PHP内核通用网站后台权限管理系统源码
- SpringBoot集成logback彩色日志配置以及banner启动设置(炫酷到爆炸!)
- 安装Linux操作系统完成必做几件事
- 制作自定义工作流(WWF)设计器