阿语python4-2 美多商城v5.0用户中心-收货地址之第5.3.7节修改地址标题

news/2024/7/19 14:46:12 标签: python, html, nginx, js, java
htmledit_views">
js_content">

1. 修改地址标题接口设计和定义

1.请求方式

选项方案
请求方法PUT
请求地址/addresses/(?P<address_id>\d+)/title/

2.请求参数:路径参数

参数名类型是否必传说明
address_idstring要修改的地址ID(路径参数)

3.响应结果:JSON

字段说明
code状态码
errmsg错误信息

2. 修改地址标题后端逻辑实现

class UpdateTitleAddressView(LoginRequiredJSONMixin, View):
    """设置地址标题"""

    def put(self, request, address_id):
        """设置地址标题"""
        # 接收参数:地址标题
        json_dict = json.loads(request.body.decode())
        title = json_dict.get('title')

        try:
            # 查询地址
            address = Address.objects.get(id=address_id)

            # 设置新的地址标题
            address.title = title
            address.save()
        except Exception as e:
            logger.error(e)
            return http.JsonResponse({'code': RETCODE.DBERR, 'errmsg': '设置地址标题失败'})

        # 4.响应删除地址结果
        return http.JsonResponse({'code': RETCODE.OK, 'errmsg': '设置地址标题成功'})

3. 修改地址标题前端逻辑实现

  

<div class="site_title">
    <div v-if="edit_title_index===index">
        <input v-model="new_title" type="text" name="">
        <input @click="save_title(index)" type="button" name="" value="保 存">
        <input @click="cancel_title(index)" type="reset" name="" value="取 消">
    </div>
    <div>
        <h3>[[ address.title ]]</h3>
        <a @click="show_edit_title(index)" class="edit_title"></a>
    </div>
    <em v-if="address.id===default_address_id">默认地址</em>
    <span @click="delete_address(index)">×</span>
</div>

data: {
    edit_title_index: '',
    new_title: '',
},
// 展示地址title编辑框
show_edit_title(index){
    this.edit_title_index = index;
},
// 取消保存地址title
cancel_title(){
    this.edit_title_index = '';
    this.new_title = '';
},
// 修改地址title
save_title(index){
    if (!this.new_title) {
        alert("请填写标题后再保存!");
    } else {
        let url = '/addresses/' + this.addresses[index].id + '/title/';
        axios.put(url, {
            title: this.new_title
        }, {
            headers: {
                'X-CSRFToken':getCookie('csrftoken')
            },
            responseType: 'json'
        })
            .then(response => {
                if (response.data.code == '0') {
                    // 更新地址title
                    this.addresses[index].title = this.new_title;
                    this.cancel_title();
                } else if (response.data.code == '4101') {
                    location.href = '/login/?next=/addresses/';
                } else {
                    alert(response.data.errmsg);
                }
            })
            .catch(error => {
                console.log(error.response);
            })
    }
},

http://www.niftyadmin.cn/n/739753.html

相关文章

阿语python4-2 美多商城v5.0商品-准备商品数据之第6.2.1节文件存储方案FastDFS

1. FastDFS介绍用c语言编写的一款开源的轻量级分布式文件系统。功能包括&#xff1a;文件存储、文件访问&#xff08;文件上传、文件下载&#xff09;、文件同步等&#xff0c;解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务&#xff0c;如相册网站、视频网…

阿语python4-2 美多商城v5.0商品-商品数据表设计之第6.1.3节商品信息数据库表分析...

1. 商品信息数据库表分析2. 定义商品信息模型类class GoodsCategory(BaseModel):"""商品类别"""name models.CharField(max_length10, verbose_name名称)parent models.ForeignKey(self, related_namesubs, nullTrue, blankTrue, on_deletemod…

阿语python4-2 美多商城v5.0商品-商品数据表设计之第6.1.1节SPU和SKU

SPU和SKU在电商中对于商品&#xff0c;有两个重要的概念&#xff1a;SPU和SKU1. SPU介绍SPU Standard Product Unit &#xff08;标准产品单位&#xff09;iPhone X 就是一个SPU&#xff0c;与商家、颜色、款式、规格、套餐等都无关。SPU是商品信息聚合的最小单位&#xff0c;…

阿语python4-2 美多商城v5.0用户中心-修改密码

修改密码1. 修改密码后端逻辑提示&#xff1a;修改密码前需要校验原始密码是否正确&#xff0c;以校验修改密码的用户身份。如果原始密码正确&#xff0c;再将新的密码赋值给用户。class ChangePasswordView(LoginRequiredMixin, View):"""修改密码""…

阿语python4-2 美多商城v5.0用户中心-收货地址之第5.3.6节设置默认地址

1. 设置默认地址接口设计和定义1.请求方式选项方案请求方法PUT请求地址/addresses/(?P<address_id>\d)/default/2.请求参数&#xff1a;路径参数参数名类型是否必传说明address_idstring是要修改的地址ID&#xff08;路径参数&#xff09;3.响应结果&#xff1a;JSON字段…

阿语python4-2 美多商城v5.0用户中心-收货地址之第5.3.5节删除地址前后端逻辑

1. 删除地址接口设计和定义1.请求方式选项方案请求方法DELETE请求地址/addresses/(?P<address_id>\d)/2.请求参数&#xff1a;路径参数参数名类型是否必传说明address_idstring是要修改的地址ID&#xff08;路径参数&#xff09;3.响应结果&#xff1a;JSON字段说明code…

阿语python4-2 美多商城v5.0商品-准备商品数据之第6.2.3节Docker和FastDFS上传和下载文件...

1. Docker安装运行FastDFS1.获取FastDFS镜像# 从仓库拉取镜像 $ sudo docker image pull delron/fastdfs # 解压教学资料中本地镜像 $ sudo docker load -i 文件路径/fastdfs_docker.tar2.开启tracker容器我们将 tracker 运行目录映射到宿主机的 /var/fdfs/tracker目录中。$ su…

阿语python4-2 美多商城v5.0商品-商品列表页之第6.4.2节列表页面包屑导航

列表页面包屑导航重要提示&#xff1a;路径参数category_id是商品第三级分类1. 查询列表页面包屑导航数据提示&#xff1a;对包屑导航数据的查询进行封装&#xff0c;方便后续直接使用。goods.utils.pydef get_breadcrumb(category):"""获取面包屑导航:param ca…