Python全系列 教程
3567个小节阅读:5931.2k
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
个人中心页面,可以新增地址。视图函数获取当前登录用户下的收获地址信息。
views.py
xxxxxxxxxx
#地址管理的视图类
class AddressView(View):
def get(self,request):
#获取当前登录用户下的收获地址信息
#获取当前登录用户
userstr = request.session.get('user','')
if userstr:
user = jsonpickle.loads(userstr)
addr_list = user.address_set.all()
return render(request,'userapp/address.html',{'addr_list':addr_list})
#保存地址
def post(self,request):
#获取请求参数
aname = request.POST.get('aname','')
aphone = request.POST.get('aphone','')
addr = request.POST.get('addr','')
#获取当前登录用户对象
userstr = request.session.get('user','')
if userstr:
user = jsonpickle.loads(userstr)
#插入数据库表
Address.objects.create(aname= aname,aphone=aphone,addr=addr,userinfo=user,isdefault = (lambda count:True if count==0 else False)(user.address_set.count()))
return redirect('userapp:address')
新增address.html
xxxxxxxxxx
{% extends 'base.html' %}
{% block title %}用户中心{% endblock %}
{% load static %}
{% block headerjs%}
<meta name="viewport" content="width=device-width, initial-scale=1.0,maximum-scale=1.0, user-scalable=0">
<link href="{% static 'assets/css/admin.css' %}" rel="stylesheet" type="text/css">
<link href="{% static 'assets/css/amazeui.css' %}" rel="stylesheet" type="text/css">
<link href="{% static 'assets/css/personal.css' %}" rel="stylesheet" type="text/css">
<link href="{% static 'assets/css/addstyle.css' %}" rel="stylesheet" type="text/css">
<script src="{% static 'assets/js/jquery.min.js' %}" type="text/javascript"></script>
<script src="{% static 'assets/js/amazeui.js' %}" type="text/javascript"></script>
{% endblock%}
{% block main%}
<div class="Bott">
{% csrf_token %}
<div class="wrapper clearfix" style="margin: 0 auto">
<div class="zuo fl" style="margin-left: 100px">
<h3>
<a href="/"><img src="{% static 'tx.png' %}"></a>
<p class="clearfix"><span class="fl">[{{ request.session.uname }}]</span>
<span class="fr logout">[退出登录]</span></p>
</h3>
<div>
<ul>
<li><a href="/userapp/usercenter/">我的订单</a></li>
</ul>
<ul>
<li><a href="/userapp/address/">地址管理</a></li>
</ul>
<ul>
<li><a href="/">回到首页</a></li>
</ul>
</div>
</div>
<div class="you fl main-wrap">
<div class="user-address">
<!--标题 -->
<div class="am-cf am-padding">
<div class="am-fl am-cf"><strong class="am-text-danger am-text-lg">地址管理</strong> / <small>Address list</small></div>
</div>
<hr>
<ul class="am-avg-sm-1 am-avg-md-3 am-thumbnails">
{% for addr in addr_list %}
<li class="user-addresslist {% if addr.isdefault == True %}defaultAddr{% endif %}" onclick="updateDefaultAddr({{ addr.id }});">
<span class="new-option-r"><i class="am-icon-check-circle"></i>默认地址</span>
<p class="new-tit new-p-re">
<span class="new-txt">{{ addr.aname }}</span>
<span class="new-txt-rd2">{{ addr.aphone }}</span>
</p>
<div class="new-mu_l2a new-p-re">
<p class="new-mu_l2cw">
<span class="title">地址:</span>
<span class="street">{{ addr.addr }}</span></p>
</div>
<div class="new-addr-btn">
<a href="#"><i class="am-icon-edit"></i>编辑</a>
<span class="new-addr-bar">|</span>
<a href="javascript:void(0);" onclick="delClick(this);"><i class="am-icon-trash"></i>删除</a>
</div>
</li>
{% endfor %}
</ul>
<div class="clear"></div>
<a class="new-abtn-type" data-am-modal="{target: '#doc-modal-1', closeViaDimmer: 0}">添加新地址</a>
<!--例子-->
<div class="" id="doc-modal-1">
<div class="add-dress">
<!--标题 -->
<div class="am-cf am-padding">
<div class="am-fl am-cf"><strong class="am-text-danger am-text-lg">新增地址</strong> / <small>Add address</small></div>
</div>
<hr>
<div class="am-u-md-12 am-u-lg-8" style="margin-top: 20px;">
<form id="frmId" class="am-form am-form-horizontal" action="/userapp/address/" method="post">
{% csrf_token %}
<div class="am-form-group">
<label for="user-name" class="am-form-label">收货人</label>
<div class="am-form-content">
<input type="text" id="user-name" placeholder="收货人" name="aname">
</div>
</div>
<div class="am-form-group">
<label for="user-phone" class="am-form-label">手机号码</label>
<div class="am-form-content">
<input id="user-phone" placeholder="手机号必填" type="text" name="aphone">
</div>
</div>
<div class="am-form-group">
<label for="user-address" class="am-form-label">所在地</label>
<div class="am-form-content address">
<select id="province" onchange="loadCity();">
<option value="a">浙江省</option>
</select>
<select id="city" onchange="loadTown();">
<option value="a">温州市</option>
</select>
<select id="town">
<option value="a">瑞安区</option>
</select>
</div>
</div>
<div class="am-form-group">
<label for="user-intro" class="am-form-label">详细地址</label>
<div class="am-form-content">
<textarea class="" rows="3" id="addr" name="addr" placeholder="输入详细地址" onfocus="loadInfo();"></textarea>
<small>100字以内写出你的详细地址...</small>
</div>
</div>
<div class="am-form-group">
<div class="am-u-sm-9 am-u-sm-push-3">
<a class="am-btn am-btn-danger" onclick="$('#frmId').submit();">保存</a>
<a href="javascript: void(0)" class="am-close am-btn am-btn-danger" data-am-modal-close="">取消</a>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function() {
$(".new-option-r").click(function() {
$(this).parent('.user-addresslist').addClass("defaultAddr").siblings().removeClass("defaultAddr");
});
var $ww = $(window).width();
if($ww>640) {
$("#doc-modal-1").removeClass("am-modal am-modal-no-btn")
}
})
</script>
<div class="clear"></div>
</div>
</div>
</div>
{% endblock%}