视图界面views():
# 地址列表页
def address(request):
# 查收此用户对应的所有地址显示到页面上
buyer_id = request.COOKIES.get('user_id') #获取登录页面的ID
addr_lst = Address.objects.filter(buyer_id=buyer_id) #显示对应ID的所有收货地址
# print(addr_lst)
return render(request, 'buyer/address.html', {'addr_lst': addr_lst}) #使用<for>标签循环套取 (addr_lst)使用
# 添加地址
def add_address(request):
if request.method == 'POST': #如果提交方式是POST
buyer_name = request.POST.get('buyer') #提交的数据
buyer_phone = request.POST.get('buyer_phone')
buyer_address = request.POST.get('buyer_address')
addr = Address() #建立与地址数据的链接
addr.address = buyer_address # 数据对应
addr.phone = buyer_phone
addr.recver = buyer_name
user_id = request.COOKIES.get('user_id')
addr.buyer = Buyer.objects.get(id=int(user_id))# addr.buyer_id= 自动补齐 _id 看modles
addr.save() #存入数据库
return redirect('/buyer/address/') #重定向到地址页面
return render(request, 'buyer/addAddress.html')
# 修改地址
def change_address(request):
if request.method == 'GET': # 删除和修改html提交方式是<a>标签 用的是GET 方式
address_id = request.GET.get('id')
address_obj = Address.objects.get(id=address_id)
return render(request, 'buyer/changeAddress.html', {'address_obj': address_obj})
else: # POST提交方式
"""保存修改的内容"""
buyer_name = request.POST.get('buyer') #获取页面提交的内容
buyer_phone = request.POST.get('buyer_phone')
buyer_address = request.POST.get('buyer_address')
address_id = request.POST.get('id') #之前页面显示的数据是用<form>标签ID获取的,
addr = Address.objects.get(id=address_id) #获取数据库这条ID信息并修改数据库原有ID值
addr.address = buyer_address
addr.phone = buyer_phone
addr.recver = buyer_name
addr.save()#保存
return redirect('/buyer/address/') #重定向到地址页面
地址html界面
<table width="100%" cellpadding="0" cellspacing="0" border='0px'>
<tr>
<th width='10%'>
<input type="checkbox" id="all"
style="margin-top: 20px; margin-left: 10px;width: 24px; height: 24px;">
</th>
<th width='10%'>收货人</th>
<th width='10%'>电话</th>
<th width='60%'>地址</th>
<th width='10%'>操作</th>
</tr>
{% for address in addr_lst %}
#循环套取数据库对象(行)
<tr>
<th width='10%'>
<input type="checkbox" id="all"
style="margin-top: 20px; margin-left: 10px;width: 24px; height: 24px;">
</th>
<th width='10%'>{{ address.recver }}</th>
<th width='10%'>{{ address.phone }}</th>
<th width='70%'>{{ address.address }}</th>
<th width='70%'>
<a href="/buyer/change_address/?id={{ address.id }}">修改</a> #get
<a href="/buyer/del_address/{{ address.id }}/">删除</a> #get
</th>
</tr>
{% endfor %}
</table>
地址添加HTML
<form method="post" action="/buyer/add_address/"> #提交给 (add_address)方法
{% csrf_token %}
<div class="line">
<label>收货人姓名</label>
<input type="text" name="buyer" class="input"/>
</div>
<div class="line">
<label>收货人电话</label>
<input type="text" name="buyer_phone" class="input"/>
</div>
<div class="line">
<label>收货人地址</label>
<input type="text" name="buyer_address" class="input"/>
</div>
<div class="line">
<input type="submit" value="新增地址" class="btn" />
</div>
</form>
修改地址页面HTML
<form method="post" action="/buyer/change_address/"> #提交给 (change_address)方法
<input type="hidden" name="id" value="{{ address_obj.id }}">
{% csrf_token %}
<div class="line">
<label>收货人姓名</label>
<input type="text" name="buyer" class="input" value="{{ address_obj.recver }}"/>
</div>
<div class="line">
<label>收货人电话</label>
<input type="text" name="buyer_phone" class="input" value="{{ address_obj.phone }}"/>
</div>
<div class="line">
<label>收货人地址</label>
<input type="text" name="buyer_address" class="input" value="{{ address_obj.address }}"/>
</div>
<div class="line">
<input type="submit" value="修改地址" class="btn"/>
</div>
</form>
删除地址views.py()
# 删除地址
def del_address(request, address_id):
address_obj = Address.objects.get(id=int(address_id),buyer_id=int(request.COOKIES.get('user_id')))
#删除对应的ADDress 里面的 ID
address_obj.delete()
return redirect('/buyer/address/')
删除页HTML 在地址页面添加 (上面地址页面已经写好了)
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是一个个人学习交流的平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽,造成漏登,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。