Exemplo n.º 1
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
        })
Exemplo n.º 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})
Exemplo n.º 3
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
Exemplo n.º 4
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
        })
Exemplo n.º 5
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
Exemplo n.º 6
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
        })
Exemplo n.º 7
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
        })
Exemplo n.º 8
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
Exemplo n.º 9
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})
Exemplo n.º 10
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})
Exemplo n.º 11
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
Exemplo n.º 12
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
            })
Exemplo n.º 13
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
Exemplo n.º 14
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
        })
Exemplo n.º 15
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)
            })
Exemplo n.º 16
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
Exemplo n.º 17
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})
Exemplo n.º 18
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})
Exemplo n.º 19
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
            })
Exemplo n.º 20
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
        })
Exemplo n.º 21
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
Exemplo n.º 22
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
Exemplo n.º 23
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})
Exemplo n.º 24
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
Exemplo n.º 25
0
def remove_chart_all(request):
    # 检查用户是否登录
    util = Util()
    username = util.check_user(request)
    if username == '':
        uf = LoginForm()
        return render(request, 'index.html', {'uf': uf, 'error': '请登录后再进入'})
    else:
        my_chart_list = util.deal_cookes(request)
        response = HttpResponseRedirect('/view_chart/')
        for key in my_chart_list:
            response.set_cookie(str(key), 1, 0)
        return response
Exemplo n.º 26
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
Exemplo n.º 27
0
def view_all_order(request):
    '''
    查看所有订单
    :param request:
    :return:
    '''
    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()
        # 初始化订单结果列表, 这个列表变量在本段代码最后传递给模板文件
        Reust_Order_list = []
        # 遍历总订单
        for key1 in orders_all:
            # 通过当前订单id获取这个订单的单个订单详细信息
            order_all = Order.objects.filter(order_id=key1.id)
            # 检查这个订单是否属于当前用户
            user = get_object_or_404(User, id=order_all[0].user_id)
            # 如果属于当前用户, 就将其放入总订单列表中
            if user.username == username:
                # 初始化总订单列表
                Orders_object_list = []
                # 初始化总订单类
                orders_object = Order_list
                # 产生一个Order_list对象
                orders_object = util.set_order_list(key1)
                # 初始化总价格为 0
                prices = 0
                # 遍历这个订单
                for key in order_all:
                    # 初始化订单类
                    order_object = Order_list
                    # 产生一个Order_list对象
                    order_object = util.set_order_list(key)
                    # 将产生的order_object类加到总订单列表中
                    Orders_object_list.append(order_object)
                    # 计算总价格
                    prices = order_object.price * key.count + prices
                # 把总价格放到order_object类中
                order_object.set_prices(prices)
                # 把当前记录加到Reust_Order_list列中
                Reust_Order_list.append({orders_object: Orders_object_list})
        return render(request, 'view_all_order.html', {
            "user": username,
            'Orders_set': Reust_Order_list
        })
Exemplo n.º 28
0
def remove_chart_all(request):
    util = Util()
    username = util.check_user(request)
    if username == "":
        uf = LoginForm()
        return render(request, "index.html", {'uf': uf, "error": "请登录后再进入"})
    else:
        response = HttpResponseRedirect('/view_chart/')
        #获取所有的购物车中的内容
        cookie_list = util.deal_cookes(request)
        #遍历购物车中的内容,一个一个地删除
        for key in cookie_list:
            response.set_cookie(str(key), 1, 0)
        return response
Exemplo n.º 29
0
def view_goods(request, good_id):
    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)
        good = get_object_or_404(Goods, id=good_id)
        return render(request, 'good_details.html', {
            "user": username,
            'good': good,
            "count": count
        })
Exemplo n.º 30
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,
            'addresses': address_list
        })