視圖界面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 在地址頁面添加 (上面地址頁面已經寫好了)
本站文章版權歸原作者及原出處所有 。內容為作者個人觀點, 并不代表本站贊同其觀點和對其真實性負責,本站只提供參考并不構成任何投資及應用建議。本站是一個個人學習交流的平臺,網站上部分文章為轉載,并不用于任何商業目的,我們已經盡可能的對作者和來源進行了通告,但是能力有限或疏忽,造成漏登,請及時聯系我們,我們將根據著作權人的要求,立即更正或者刪除有關內容。本站擁有對此聲明的最終解釋權。