Exemple #1
0
def update_address(request, address_id, sign):
    # 检查用户是否登录
    util = Util()
    username = util.check_user(request)
    if username == '':
        uf = LoginForm()
        return render(request, 'index.html', {'uf': uf, 'error': '请登录后再进入'})
    else:
        # 判断修改地址是否为当前登录用户
        if not util.check_User_By_Address(username=username, address_id=address_id):
            return render(request, 'error.html',{'user':username, 'error':'你试图修改不属于你的地址'})
        cur_address = get_object_or_404(Address, id=address_id)
        user_list = get_object_or_404(User, username=username)  # 获取登录的用户信息
        if request.method=='POST':
            uf = AddressForm(request.POST)
            if uf.is_valid():
                new_address = request.POST.get('address','')
                new_phone = request.POST.get('phone', '')
                check_address = Address.objects.filter(address=new_address, user_id=user_list.id)
                if check_address:
                    return render(request, 'update_address.html', {'address':cur_address, 'error':'这个地址已经存在'})
                else:
                    Address.objects.filter(id=address_id).update(address=new_address,phone=new_phone)
                    address_list = Address.objects.filter(user_id=user_list.id)
                    if sign=='2':
                        return render(request, 'view_address.html', {'user': username, 'addresses': address_list})
                    else:
                        return redirect('/user_info/')
        else:
            return render(request,'update_address.html',{'address':cur_address})
Exemple #2
0
def add_address(request, sign):
    # 检查用户是否登录
    util = Util()
    username = util.check_user(request)
    if username == '':
        uf = LoginForm()
        return render(request, 'index.html', {'uf': uf, 'error': '请登录后再进入'})
    else:
        user_list = get_object_or_404(User, username=username)  # 获取登录的用户信息
        if request.method=="POST":
            uf = AddressForm(request.POST)
            if uf.is_valid():
                address = request.POST.get('address','')
                phone = request.POST.get('phone', '')
                check_address = Address.objects.filter(address=address, user_id=user_list.id)
                if check_address:
                    return render(request, 'add_address.html', {'uf':uf, 'error':'这个地址已经存在'})
                else:
                    Address.objects.create(user_id=user_list.id, address=address, phone=phone)
                    address_list = Address.objects.filter(user_id=user_list.id)
                    if sign=='2':
                        return render(request, 'view_address.html',{'user':username, 'addresses':address_list})
                    else:
                        return redirect('/user_info/')
            else:
                uf = AddressForm()
                return render(request, 'add_address.html', {'uf':uf})
Exemple #3
0
def view_all_orders(request):
    # 检查用户是否登录
    util = Util()
    username = util.check_user(request)
    if username == '':
        uf = LoginForm()
        return render(request, 'index.html', {'uf': uf, 'error': '请登录后再进入'})
    else:
        orders_all = Orders.objects.all()
        orders_set = []
        for key1 in orders_all:
            order_all = Order.objects.filter(order_id=key1.id)  # 获取该总订单的所有单个订单
            cur_user = get_object_or_404(User, id=order_all[0].user_id)
            if cur_user.username == username:
                order_object_list = []
                prices = 0
                for key in order_all:
                    order_object = util.set_order_list(key)
                    prices = order_object.price * order_object.count + prices
                    order_object.set_prices(prices)
                    order_object_list.append(order_object)
                orders_prices = order_object_list[-1].prices
                orders_object = util.set_orders_list(key1, orders_prices)
                orders_set.append({orders_object: order_object_list})
        return render(request, 'view_all_order.html', {
            'user': username,
            'Orders_set': orders_set
        })
Exemple #4
0
def user_info(request):
    util = Util()
    username = util.get_name(request)
    if username == '':
        return redirect('/index.html')
    else:
        user_list = User.objects.get(username=username)
        print('++++++++++++++')

        # user_address = Address.objects.get(user_id = user_list.id)
        #user_address = Address.objects.filter(user_id = user_list.id)
        address_list = Address.objects.filter(user_id=user_list.id)
        print('~~~~~~~~~~~~~~~~~')
        #print(user_address)
        print('-----------------')
        #当用filter代替get 后 user_address.pthone无输出
        #password=user_list.password
        # print (user_address.phone)
        #return render(request,'goods/user_info.html',{'user_list':user_list,'username':username,'useraddress':user_address})
        return render(
            request, 'goods/user_info.html', {
                'user_list': user_list,
                'username': username,
                'useraddress': address_list
            })
Exemple #5
0
def add_chart(request, good_id, sign):
    '''
    加入购物车
    :param request:
    :param good_id:
    :param sign:
    :return:
    '''
    util = Util()
    username = util.check_user(request)
    if username == "":
        uf = LoginForm()
        return render(request, "index.html", {'error': "请登录后再进入!"})
    else:
        # 获得商品详情
        good = get_object_or_404(Goods, id=good_id)
        # 如果sign==1, 则返回商品列表页面
        if sign == "1":
            response = HttpResponseRedirect('/goods_view/')
        # 否则返回商品详情页面
        else:
            response = HttpResponseRedirect('/view_goods/' + good_id)
        # 把当前商品添加进购物车, 参数为商品id, 值为购买商品的数量, 默认为1, 有效时间是一年
        response.set_cookie(str(good.id), 1, 60 * 60 * 24 * 365)
        return response
Exemple #6
0
def search_name(request):
    '''
    商品搜索
    :param request:
    :return:
    '''
    util = Util()
    username = util.check_user(request)
    if username == "":
        uf = LoginForm()
        return render(request, "index.html", {'uf': uf, "error": "请登录后再进入!"})
    else:
        count = util.cookies_count(request)
        # 获取查询数据
        search_name = (request.POST.get("good", "")).strip()
        # 通过objects.filter()方法进行模糊匹配查询, 查询结果放入变量good_list
        good_list = Goods.objects.filter(name__icontains=search_name)

        # 对查询结果进行分页显示
        paginator = Paginator(good_list, 5)
        page = request.GET.get('page')
        try:
            contacts = paginator.page(page)
        except PageNotAnInteger:
            # 如果页号不是一个整数, 就返回第一页
            contacts = paginator.page(1)
        except EmptyPage:
            # 如果页号查出范围(如9999), 就返回结果的最后一页
            contacts = paginator.page(paginator.num_pages)
        return render(request, "goods_view.html", {
            "user": username,
            "goodss": contacts,
            "count": count
        })
Exemple #7
0
def update_chart(request, good_id):
    '''
    修改购物车中的商品数量
    :param request:
    :param good_id:
    :return:
    '''
    util = Util()
    username = util.check_user(request)
    if username == "":
        uf = LoginForm()
        return render(request, "index.html", {'uf': uf, 'error': '请登录后再进入!'})
    else:
        # 获取编号为good_id的商品
        good = get_object_or_404(Goods, id=good_id)
        # 获取修改的数量
        count = (request.POST.get("count" + good_id, "")).strip()
        # 如果数量值<=0, 就报出错信息
        if int(count) <= 0:
            # 获得购物车列表信息
            my_chart_list = util.add_chart(request)
            # 返回错误信息
            return render(request, "view_chart.html", {
                'user': username,
                'goodss': my_chart_list,
                'error': '个数不能少于或等于0!'
            })
        else:
            # 否则修改商品数量
            response = HttpResponseRedirect('/view_chart/')
            response.set_cookie(str(good_id), count, 60 * 60 * 24 * 365)
            return response
Exemple #8
0
def goods_view(request):
    '''
    查看商品信息
    :param request:
    :return:
    '''
    util = Util()
    username = util.check_user(request)
    if username == "":
        uf = LoginForm()
        return render(request, "index.html", {'uf': uf, "error": "请登录后再进入!"})
    else:
        # 获得所有商品信息
        good_list = Goods.objects.all()
        # 获得购物车物品数量
        count = util.cookies_count(request)

        # 翻页操作
        paginator = Paginator(good_list, 5)
        page = request.GET.get('page')
        try:
            contacts = paginator.page(page)
        except PageNotAnInteger:
            contacts = paginator.page(1)
        return render(request, "goods_view.html", {
            "user": username,
            "goodss": contacts,
            "count": count
        })
Exemple #9
0
def view_orders(request, orders_id):
    # 检查用户是否登录
    util = Util()
    username = util.check_user(request)
    if username == '':
        uf = LoginForm()
        return render(request, 'index.html', {'uf': uf, 'error': '请登录后再进入'})
    else:
        orders_filter = get_object_or_404(Orders, id=orders_id)
        address_list = get_object_or_404(Address, id=orders_filter.address_id)
        address = address_list.address
        order_filter = Order.objects.filter(order_id=orders_filter.id)
        sum_price = 0
        order_list_var = []
        for order in order_filter:
            order_object = util.set_order_list(order)
            sum_price += order_object.price * order_object.count
            order_list_var.append(order_object)
        return render(
            request, 'view_order.html', {
                'user': username,
                'orders': orders_filter,
                'address': address,
                'prices': sum_price,
                'order': order_list_var
            })
Exemple #10
0
def register(request):
    util = Util()
    if request.method == "POST":  #判断表单是否提交状态
        uf = UserForm(request.POST)  #获得表单变量
        if uf.is_valid():  #判断表单数据是否正确
            #获取表单信息
            username = (request.POST.get('username')).strip()  #获取用户名信息
            password = (request.POST.get('password')).strip()  #获取密码信息
            #加密password
            password = util.md5(password)
            #判断密码长度是否做过50
            email = (request.POST.get('email')).strip()  #获取Email信息
            #查找数据库中是否存在相同用户名
            user_list = User.objects.filter(username=username)
            if user_list:
                #如果存在,报"用户名已经存在!"错误信息并且回到注册页面
                uf = UserForm()
                return render(request, 'register.html', {
                    'uf': uf,
                    "error": "用户名已经存在!"
                })
            else:
                #否则将表单写入数据库
                user = User()
                user.username = username
                user.password = password
                user.email = email
                user.save()
                #返回登录页面
                uf = LoginForm()
                return render(request, 'index.html', {'uf': uf})
    else:  #如果不是表单提交状态,显示表单信息
        uf = UserForm()
    return render(request, 'register.html', {'uf': uf})
Exemple #11
0
def login_action(request):
    util = Util()
    if request.method=="POST":
        uf = LoginForm(request.POST)
        if uf.is_valid():
            username = request.POST.get('username','')
            password = request.POST.get('password','')
            password = util.md5(password)
            if username=='' or password=='':
                render(request, 'index.html', {'uf':uf, 'error':'用户名或者密码不能为空'})
            else:
                is_usr = User.objects.filter(username=username)
                if not is_usr :
                    return render(request, 'index.html',{'uf':uf, 'error': '用户名不存在,请注册'})
                else:
                    user_info = User.objects.filter(username=username, password=password)
                    if user_info:
                        request.session['username'] = username
                        return redirect('/goods_view/')
                        # return render(request, 'index.html', {'uf': uf, 'error': '查看购物车'})
                    else:
                        return render(request, 'index.html', {'uf': uf, 'error': '用户名或密码错误'})
    else:
        uf = LoginForm()
        return render(request, 'index.html',{'uf':uf})
Exemple #12
0
def goods_view(request):
    util = Util()
    username = util.check_user(request)
    if username == "":
        uf = LoginForm()
        return render(request, "index.html", {'uf': uf, "error": "请登录后再进入"})
    else:
        #获得所有商品信息
        good_list = Goods.objects.all()
        #获得购物车中物品数量
        count = util.cookies_count(request)

        #翻页操作
        paginator = Paginator(good_list, 5)
        page = request.GET.get('page')
        try:
            contacts = paginator.page(page)
        except PageNotAnInteger:
            # If page is not an integer, deliver first page.
            contacts = paginator.page(1)
        except EmptyPage:
            # If page is out of range (e.g. 9999), deliver last page of results.
            contacts = paginator.page(paginator.num_pages)
        return render(request, "goods_view.html", {
            "user": username,
            "goodss": contacts,
            "count": count
        })
Exemple #13
0
def search_name(request):
    util = Util()
    username = util.check_user(request)
    if username == "":
        uf = LoginForm()
        return render(request, "index.html", {'uf': uf, "error": "请登录后再进入"})
    else:
        count = util.cookies_count(request)
        #获取查询数据
        search_name = (request.POST.get("good", "")).strip()
        #通过objects.filter()方法进行模糊匹配查询,查询结果放入变量good_list
        good_list = Goods.objects.filter(name__icontains=search_name)

        #对查询结果进行分页显示
        paginator = Paginator(good_list, 5)
        page = request.GET.get('page')
        try:
            contacts = paginator.page(page)
        except PageNotAnInteger:
            # If page is not an integer, deliver first page.
            contacts = paginator.page(1)
        except EmptyPage:
            # If page is out of range (e.g. 9999), deliver last page of results.
            contacts = paginator.page(paginator.num_pages)
        return render(request, "goods_view.html", {
            "user": username,
            "goodss": contacts,
            "count": count
        })
Exemple #14
0
def login_action(request):
    util = Util()
    if request.method == "POST":
        uf = LoginForm(request.POST)
        if uf.is_valid():
            # 寻找名为 "username"和"password"的POST参数,而且如果参数没有提交,返回一个空的字符串。
            username = (request.POST.get('username')).strip()
            password = (request.POST.get('password')).strip()
            #加密password
            password = util.md5(password)
            # 判断输入数据是否为空
            if username == '' or password == '':
                return render(request, "index.html", {
                    'uf': uf,
                    "error": "用户名和密码不能为空"
                })
            else:
                # 判断用户名和密码是否准确
                user = User.objects.filter(username=username,
                                           password=password)
                if user:
                    response = HttpResponseRedirect(
                        '/goods_view/')  # 登录成功跳转查看商品信息
                    request.session['username'] = username  # 将session 信息写到服务器
                    return response
                else:
                    return render(request, "index.html", {
                        'uf': uf,
                        "error": "用户名或者密码错误"
                    })
    else:
        uf = LoginForm()
    return render(request, 'index.html', {'uf': uf})
Exemple #15
0
def delete_address(request, address_id, sign):
    util = Util()
    username = util.check_user(request)
    if username == "":
        uf = LoginForm()
        return render(request, "index.html", {'uf': uf, "error": "请登录后再进入"})
    else:
        if not util.check_User_By_Address(request, username, address_id):
            return render(request, "error.html", {"error": "你试图删除不属于你的地址信息!"})
        else:
            #获取指定地址信息
            user_list = get_object_or_404(User, username=username)
            #删除这个地址信息
            Address.objects.filter(id=address_id).delete()
            #返回地址列表页面
            address_list = Address.objects.filter(user_id=user_list.id)
            #如果sign==2,返回订单信息页面
            if sign == "2":
                return render(request, 'view_address.html', {
                    "user": username,
                    'addresses': address_list
                })  #进入订单用户信息
            #否则进入用户信息页面
            else:
                response = HttpResponseRedirect('/user_info/')  # 进入用户信息
                return response
Exemple #16
0
def change_password(request):
    # 检查用户是否登录
    util = Util()
    username = util.check_user(request)
    if username == '':
        uf = LoginForm()
        return render(request, 'index.html', {'uf': uf, 'error': '请登录后再进入'})
    else:
        count = util.count_cookies(request)  # 当前购物车中的商品数量
        uf = ChangePasswordForm()
        user_list = get_object_or_404(User, username=username)  # 获取登录的用户信息
        if request.method=='POST':
            uf = ChangePasswordForm(request.POST)
            if uf.is_valid():
                oldpassword = util.md5(request.POST.get('oldpassword',''))   # 获取旧密码
                newpassword = util.md5(request.POST.get('newpassword','') )  # 获取新密码
                checkpassword = util.md5(request.POST.get('checkpassword',''))   # 获取确认密码
                if oldpassword != user_list.password:
                    return render(request, 'change_password.html', {'uf':uf,'user':username, 'error':'旧密码不正确',
                                                                    'count':count})
                elif newpassword == oldpassword:
                    return render(request, 'change_password.html', {'uf':uf,'user':username, 'error':'新密码不能与旧密码相同',
                                                                    'count':count})
                elif newpassword != checkpassword:
                    return render(request, 'change_password.html', {'uf':uf,'user':username, 'error':'确认密码与新密码不匹配',
                                                                    'count':count})
                else:
                    User.objects.filter(username=username).update(password=newpassword)
                    return render(request, 'change_password.html',{'uf':uf,'user':username, 'error':'密码修改成功',
                                                                   'count':count})
        else:
            return render(request, 'change_password.html', {'uf':uf,'user':username, 'count':count})
Exemple #17
0
def create_order(request):
    # 检查用户是否登录
    util = Util()
    username = util.check_user(request)
    if username == '':
        uf = LoginForm()
        return render(request, 'index.html', {'uf': uf, 'error': '请登录后再进入'})
    else:
        user_list = get_object_or_404(User, username=username)
        address_id = request.POST.get('address', '')
        if address_id == '':
            address_list = Address.objects.filter(user_id=user_list.id)
            return render(request, 'view_address.html', {
                'user': username,
                'addresses': address_list,
                'error': '必须选择一个地址'
            })
        else:
            orders = Orders()
            orders.address_id = int(address_id)
            orders.status = False
            orders.save()  # 创建一个总订单
            mychart_list = util.deal_cookes(request)  # 获取购物车中的所有商品列表
            # 将每个商品创建一个订单
            for key in mychart_list:
                Order.objects.create(order_id=orders.id,
                                     goods_id=key,
                                     user_id=user_list.id,
                                     count=int(mychart_list[key]))
            # 清除所有的cookies并显示总订单
            response = HttpResponseRedirect('/view_orders/' + str(orders.id))
            for key in mychart_list:
                response.set_cookie(key, 1, 0)
            return response
Exemple #18
0
def update_chart(request, good_id):
    util = Util()
    username = util.check_user(request)
    if username == "":
        uf = LoginForm()
        return render(request, "index.html", {'uf': uf, "error": "请登录后再进入"})
    else:
        #获取编号为good_id的商品
        good = get_object_or_404(Goods, id=good_id)
        #获取修改的数量
        count = (request.POST.get("count" + good_id, "")).strip()
        #如果数量值<=0,报出错信息
        if int(count) <= 0:
            #获得购物车列表信息
            my_chart_list = util.add_chart(request)
            #返回错误信息
            return render(request, "view_chart.html", {
                "user": username,
                "goodss": my_chart_list,
                "error": "个数不能小与0"
            })
        else:
            #否则修改商品数量
            response = HttpResponseRedirect('/view_chart/')
            response.set_cookie(str(good.id), count, 60 * 60 * 24 * 365)
            return response
Exemple #19
0
def view_order(request, orders_id):
    util = Util()
    username = util.check_user(request)
    if username == "":
        uf = LoginForm()
        return render(request, "index.html", {'uf': uf, "error": "请登录后再进入"})
    else:
        #获取订单信息
        orders_filter = get_object_or_404(Orders, id=orders_id)
        #获取订单的收货地址信息
        address_list = get_object_or_404(Address, id=orders_filter.address_id)
        #获取收货地址信息中的地址
        address = address_list.address
        #获得单个订单表中的信息
        order_filter = Order.objects.filter(order_id=orders_filter.id)
        #建立列表变量order_list,里面存的是每个Order_list对象
        order_list_var = []
        prices = 0
        for key in order_filter:
            #定义Order_list对象
            order_object = Order_list
            #产生一个Order_list对象
            order_object = util.set_order_list(key)
            #把当前Order_list对象加入到列表变量order_list
            order_list_var.append(order_object)
            prices = order_object.price * order_object.count + prices
        return render(
            request, 'view_order.html', {
                "user": username,
                'orders': orders_filter,
                'order': order_list_var,
                'address': address,
                "prices": str(prices)
            })
Exemple #20
0
def delete_address(request, address_id, sign):
    '''
    删除收货地址
    sign=1:表示从用户信息进入删除送货地址页面
    sign=2:表示从订单用户信息进入删除送货地址页面
    :param request:
    :param address_id:
    :param sign:
    :return:
    '''
    util = Util()
    username = util.check_user(request)
    if username == "":
        uf = LoginForm()
        return render(request, "index.html", {'uf': uf, 'error': "请登录后再进入!"})
    else:
        # 获取指定地址信息
        user_list = get_object_or_404(User, username=username)
        # 删除这个地址信息
        Address.objects.filter(id=address_id).delete()
        # 返回地址列表页面
        address_list = Address.objects.filter(user_id=user_list.id)
        # 如果sign=2, 就返回订单信息页面
        if sign == '2':
            return render(request, 'view_address.html', {
                'user': username,
                'addresses': address_list
            })  # 进入订单用户信息页面
        else:
            response = HttpResponseRedirect('/user_info/')  # 进入用户信息页面
            return response
Exemple #21
0
def add_address(request, sign):
    '''
    添加收货地址
    :param request:
    :param sign:
    :return:
    '''
    util = Util()
    username = util.check_user(request)
    if username == "":
        uf1 = LoginForm()
        return render(request, "index.html", {'uf': uf1, "error": "请登录后再进入"})
    else:
        #获得当前登录用户的所有信息
        user_list = get_object_or_404(User, username=username)
        #获得当前登录用户的编号
        id = user_list.id
        #判断表单是否提交
        if request.method == "POST":
            #如果表单提交,准备获取表单信息
            uf = AddressForm(request.POST)
            #表单信息是否正确
            if uf.is_valid():
                #如果正确,开始获取表单信息
                myaddress = (request.POST.get("address", "")).strip()
                phone = (request.POST.get("phone", "")).strip()
                #判断地址是否存在
                check_address = Address.objects.filter(address=myaddress,
                                                       user_id=id)
                if not check_address:
                    #如果不存在,将表单写入数据库
                    address = Address()
                    address.address = myaddress
                    address.phone = phone
                    address.user_id = id
                    address.save()
                    #返回地址列表页面
                    address_list = Address.objects.filter(user_id=user_list.id)
                    #如果sign=="2",返回订单信息
                    if sign == "2":
                        return render(request, 'view_address.html', {
                            "user": username,
                            'addresses': address_list
                        })  #进入订单用户信息
                    else:
                        #否则返回用户信息
                        response = HttpResponseRedirect(
                            '/user_info/')  # 进入用户信息
                        return response
                #否则返回添加用户界面,显示“这个地址已经存在!”的错误信息
                else:
                    return render(request, 'add_address.html', {
                        'uf': uf,
                        'error': '这个地址已经存在!'
                    })
        #如果没有提交,显示添加地址见面
        else:
            uf = AddressForm()
        return render(request, 'add_address.html', {'uf': uf})
Exemple #22
0
def update_address(request, address_id, sign):
    util = Util()
    username = util.check_user(request)
    if username == "":
        uf = LoginForm()
        return render(request, "index.html", {'uf': uf, "error": "请登录后再进入"})
    else:
        #判断修改的地址是否属于当前登录用户
        if not util.check_User_By_Address(request, username, address_id):
            return render(request, "error.html", {"error": "你试图修改不属于你的地址信息!"})
        else:
            #获取指定地址信息
            address_list = get_object_or_404(Address, id=address_id)
            #获取当前登录用户的用户信息
            user_list = get_object_or_404(User, username=username)
            #获取用户编号
            id = user_list.id
            #如果是提交状态
            if request.method == "POST":
                #如果表单提交,准备获取表单信息
                uf = AddressForm(request.POST)
                #表单信息验证
                if uf.is_valid():
                    #如果数据准确,获取表单信息
                    myaddress = (request.POST.get("address", "")).strip()
                    phone = (request.POST.get("phone", "")).strip()
                    #判断修改的地址信息这个用户是否是否存在
                    check_address = Address.objects.filter(address=myaddress,
                                                           user_id=id)
                    #如果不存在,将表单数据修改进数据库
                    if not check_address:
                        Address.objects.filter(id=address_id).update(
                            address=myaddress, phone=phone)
                    #否则报“这个地址已经存在!”的错误提示信息
                    else:
                        return render(
                            request, 'update_address.html', {
                                'uf': uf,
                                'error': '这个地址已经存在!',
                                'address': address_list
                            })
                    #获得当前登录用户的所有地址信息
                    address_list = Address.objects.filter(user_id=user_list.id)
                    #如果sign==2,返回订单信息页面
                    if sign == "2":
                        return render(request, 'view_address.html', {
                            "user": username,
                            'addresses': address_list
                        })  #进入订单用户信息
                    #否则进入用户信息页面
                    else:
                        response = HttpResponseRedirect(
                            '/user_info/')  # 进入用户信息
                        return response
            #如果没有提交,显示修改地址页面
            else:
                return render(request, 'update_address.html',
                              {'address': address_list})
Exemple #23
0
def change_password(request):
    util = Util()
    username = util.check_user(request)
    if username == "":
        uf = LoginForm()
        return render(request, "index.html", {'uf': uf, "error": "请登录后再进入"})
    else:
        count = util.cookies_count(request)
        #获得当前登录用户的用户信息
        user_info = get_object_or_404(User, username=username)
        #如果是提交表单,获取表单信息,并且进行表单信息验证
        if request.method == "POST":
            #获取旧密码
            oldpassword = util.md5((request.POST.get("oldpassword",
                                                     "")).strip())
            #获取新密码
            newpassword = util.md5((request.POST.get("newpassword",
                                                     "")).strip())
            #获取新密码的确认密码
            checkpassword = util.md5((request.POST.get("checkpassword",
                                                       "")).strip())
            #如果旧密码不正确,报错误信息,不允许修改
            if oldpassword != user_info.password:
                return render(request, "change_password.html", {
                    "user": username,
                    "error": "旧密码不正确",
                    "count": count
                })
            #如果新密码与旧密码相同,报错误信息,不允许修改
            elif newpassword == oldpassword:
                return render(request, "change_password.html", {
                    "user": username,
                    "error": "新密码不能与旧密码相同",
                    "count": count
                })
            #如果新密码与新密码的确认密码不匹配,报错误信息,不允许修改
            elif newpassword != checkpassword:
                return render(request, "change_password.html", {
                    "user": username,
                    "error": "确认密码与新密码不匹配",
                    "count": count
                })
            else:
                #否则修改成功
                User.objects.filter(username=username).update(
                    password=newpassword)
                return render(request, "change_password.html", {
                    "user": username,
                    "error": "密码修改成功",
                    "count": count
                })
        #如果不是提交表单,显示修改密码页面
        else:
            return render(request, "change_password.html", {
                "user": username,
                "count": count
            })
Exemple #24
0
def change_password(request):
    '''
    修改用户密码
    :param request:
    :return:
    '''
    util = Util()
    username = util.check_user(request)
    if username == "":
        uf = LoginForm()
        return render(request, "index.html", {'uf': uf, "error": "请登录后再进入"})
    else:
        count = util.cookies_count(request)
    # 获得当前登录用户的用户信息
    user_info = get_object_or_404(User, username=username)
    # 如果是提交表单, 就获取表单信息, 并且进行表单信息验证
    if request.method == 'POST':
        # 获取旧密码
        oldpassword = (request.POST.get("oldpassword", "")).strip()
        # 获取新密码
        newpassword = (request.POST.get("newpassword", "")).strip()
        # 获取新密码的确认密码
        checkpassword = (request.POST.get("checkpassword", "")).strip()
        # 如果旧密码不正确, 就报错误信息, 不允许修改
        if oldpassword != user_info.password:
            return render(request, "change_password.html", {
                'user': username,
                'error': '原密码不正确, 请确定后重新输入!',
                'count': count
            })
        # 如果旧密码与新密码相同,就报错误信息, 不允许修改
        elif oldpassword == newpassword:
            return render(request, "change_password.html", {
                'user': username,
                'error': '新密码与旧密码相同,请重新输入!',
                'count': count
            })
        # 如果新密码与确认密码不同,报错
        elif newpassword != checkpassword:
            return render(request, 'change_password.html', {
                'user': username,
                'error': '两次输入的密码不同!',
                'count': count
            })
        else:
            # 否则修改成功
            User.objects.filter(username=username).update(password=newpassword)
            return render(request, "change_password.html", {
                'user': username,
                'error': '密码修改成功!请牢记密码!',
                'count': count
            })
    else:
        return render(request, "change_password.html", {
            'user': username,
            'count': count
        })
Exemple #25
0
def delete_orders(request, orders_id, sign):
    util = Util()
    username = util.check_user(request)
    if username == "":
        uf = LoginForm()
        return render(request, "index.html", {'uf': uf, "error": "请登录后再进入"})
    else:
        #如果删除单独一个订单
        if sign == "1" or sign == "3":
            #判断修改的地址是否属于当前登录用户
            if not util.check_User_By_Order(request, username, orders_id):
                return render(request, "error.html",
                              {"error": "你试图删除不属于你的单独一个订单信息!"})
            else:
                #通过主键获得单独订单内容
                order_filter = get_object_or_404(Order, id=orders_id)
                #获得当前订单所属于的总订单
                orders_filter = get_object_or_404(Orders,
                                                  id=order_filter.order_id)
                #删除这个单独订单
                Order.objects.filter(id=orders_id).delete()
                #判断这个总订单下是否还有没有商品
                judge_order = Order.objects.filter(order_id=orders_filter.id)
                #如果没有商品了
                if (len(judge_order)) == 0:
                    #删除这个订单所处于的总订单记录
                    Orders.objects.filter(id=orders_filter.id).delete()
                    #如果标记为3,返回商品列表页面
                    if sign == "3":
                        response = HttpResponseRedirect(
                            '/goods_view/')  # 跳入商品列表页面
                    #如果标记为1,返回查看所有订单页面
                    if sign == "1":
                        response = HttpResponseRedirect(
                            '/view_all_order/')  # 跳入商品列表页面
                #如果还有商品,且标记为3,返回订单确认页面
                elif sign == "3":
                    response = HttpResponseRedirect(
                        '/view_order/' + str(orders_filter.id) + '/')  # 跳入订单确认
                #否则返回所有订单页面
                else:
                    response = HttpResponseRedirect(
                        '/view_all_order/')  # 跳入查看所有订单
            return response
            #如果删除总订单
        elif sign == "2":
            if not util.check_User_By_Orders(request, username, orders_id):
                return render(request, "error.html",
                              {"error": "你试图删除不属于你的总订单信息!"})
            else:
                #删除单个订单
                Order.objects.filter(order_id=orders_id).delete()
                #删除总订单
                Orders.objects.filter(id=orders_id).delete()
                #返回查看所有订单页面
                response = HttpResponseRedirect('/view_all_order/')  # 跳入查看所有订单
                return response
Exemple #26
0
def create_order(request):
    '''
    生成订单信息
    :return:
    '''
    util = Util()
    username = util.check_user(request)
    if username == "":
        uf = LoginForm()
        return render(request, "index.html", {'uf': uf, 'error': "请登录后再进入!"})
    else:
        # 根据登录的用户名获得用户信息
        user_list = get_object_or_404(User, username=username)
        # 从选择地址信息中获得建立这个订单的送货地址id
        address_id = (request.POST.get('address', "")).strip()
        # 如果没有选择地址, 就返回错误提示信息
        if address_id == "":
            address_list = Address.objects.filter(user_id=user_list.id)
            return render(request, 'view_address.html', {
                'user': username,
                'addresses': address_list,
                'error': '必须选择一个地址!'
            })
        # 否则开始形成订单
        # 把数据存入数据库中的总订单表中
        orders = Orders()
        # 获得订单的收货地址的id
        orders.address_id = int(address_id)
        # 设置订单的状态为未付款
        orders.status = False
        # 保存总订单信息
        orders.save()
        # 准备把订单中的每个商品存入单个订单表中
        # 获得总订单id
        orders_id = orders.id
        # 获得购物车中的内容
        cookie_list = util.deal_cookes(request)
        # 遍历购物车
        for key in cookie_list:
            # 构建对象Order()
            order = Order()
            # 获得总订单id
            order.order_id = orders_id
            # 获得用户id
            order.user_id = user_list.id
            # 获得商品id
            order.goods_id = key
            # 获得数量
            order.count = int(cookie_list[key])
            # 保存单个订单信息
            order.save()
        # 清除所有cookies, 并且显示这个订单
        response = HttpResponseRedirect('/view_order/' + str(orders_id))
        for key in cookie_list:
            response.set_cookie(str(key), 1, 0)
        return response
Exemple #27
0
def view_address(request):
    # 检查用户是否登录
    util = Util()
    username = util.check_user(request)
    if username == '':
        uf = LoginForm()
        return render(request, 'index.html', {'uf': uf, 'error': '请登录后再进入'})
    else:
        user_list = get_object_or_404(User, username=username)  # 获取登录的用户信息
        address_list = Address.objects.filter(user_id=user_list.id)
        return render(request, 'view_address.html', {'user':username, 'address':address_list})
Exemple #28
0
 def wrapper(request, *args, **kwargs):
     util = Util()
     username = util.get_name(request)
     if username == '':
         uf = LoginForm()
         return render(request, 'goods/index.html', {
             'uf': uf,
             'error': '请登录后再操作'
         })
     else:
         return view_func(request, util, username, *args, **kwargs)
Exemple #29
0
def remove_chart(request, good_id):
    # 检查用户是否登录
    util = Util()
    username = util.check_user(request)
    if username == '':
        uf = LoginForm()
        return render(request, 'index.html', {'uf': uf, 'error': '请登录后再进入'})
    else:
        good = get_object_or_404(Goods, id=good_id)  # 获取对应的商品
        response = HttpResponseRedirect('/view_chart/')
        response.set_cookie(str(good.id), 1, 0)
        return response
Exemple #30
0
def remove_chart(request, good_id):
    util = Util()
    username = util.check_user(request)
    if username == "":
        uf = LoginForm()
        return render(request, "index.html", {'uf': uf, "error": "请登录后再进入"})
    else:
        #获取指定编号的商品
        good = get_object_or_404(Goods, id=good_id)
        response = HttpResponseRedirect('/view_chart/')
        #移除购物车
        response.set_cookie(str(good.id), 1, 0)
        return response