展示地址逻辑
1. 展示地址接口设计和定义
1.请求方式
| 选项 | 方案 |
|---|---|
| 请求方法 | GET |
| 请求地址 | /addresses/ |
2.请求参数
无
2. 展示地址后端逻辑实现
class AddressView(View):
"""用户收货地址"""
def get(self, request):
"""提供地址管理界面
"""
# 获取所有的地址:
addresses = Address.objects.filter(user=request.user,
is_deleted=False)
# 创建空的列表
address_dict_list = []
# 遍历
for address in addresses:
address_dict = {
"id": address.id,
"title": address.title,
"receiver": address.receiver,
"province": address.province.name,
"city": address.city.name,
"district": address.district.name,
"place": address.place,
"mobile": address.mobile,
"tel": address.tel,
"email": address.email
}
# 将默认地址移动到最前面
default_address = request.user.default_address
if default_address.id == address.id:
# 查询集 addresses 没有 insert 方法
address_dict_list.insert(0, address_dict)
else:
address_dict_list.append(address_dict)
default_id = request.user.default_address_id
return JsonResponse({'code': 0,
'errmsg': 'ok',
'addresses': address_dict_list,
'default_address_id': default_id})