暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

阿语python 2021-05-13
156

1. 删除地址接口设计和定义

1.请求方式

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

2.请求参数:路径参数

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

3.响应结果:JSON

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

2. 删除地址后端逻辑实现

提示:

  • 删除地址不是物理删除,是逻辑删除。

class UpdateDestroyAddressView(LoginRequiredJSONMixin, View):
"""修改和删除地址"""

def put(self, request, address_id):
"""修改地址"""
......

def delete(self, request, address_id):
"""删除地址"""
try:
# 查询要删除的地址
address = Address.objects.get(id=address_id)

# 将地址逻辑删除设置为True
address.is_deleted = True
address.save()
except Exception as e:
logger.error(e)
return http.JsonResponse({'code': RETCODE.DBERR, 'errmsg': '删除地址失败'})

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

3. 删除地址前端逻辑实现

delete_address(index){
let url = '/addresses/' + this.addresses[index].id + '/';
axios.delete(url, {
headers: {
'X-CSRFToken':getCookie('csrftoken')
},
responseType: 'json'
})
.then(response => {
if (response.data.code == '0') {
// 删除对应的标签
this.addresses.splice(index, 1);
} else if (response.data.code == '4101') {
location.href = '/login/?next=/addresses/';
}else {
alert(response.data.errmsg);
}
})
.catch(error => {
console.log(error.response);
})
},

<div class="site_title">
<h3>[[ address.title ]]</h3>
<a href="javascript:;" class="edit_icon"></a>
<em v-if="address.id===default_address_id">默认地址</em>
<span @click="delete_address(index)" class="del_site">×</span>
</div>


文章转载自阿语python,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论