示例#1
0
def detailViewPost(request, category_url, url):
    """Подробный просмотр поста"""
    # location = request.geolocation
    # print(location)

	# получает обект
    post = Post.objects.get(url=url)
    
    query = Post.objects.filter(draft=False).order_by('-date')[:6]

    categories = Category.objects.all()

    get_client_ip(request)

    return render(request, 'blog/post.html',
        {'el': post,
		'title': 'Подробный просмотр поста',
        'post_list': query,
        'category': categories,
        'nav_name': post.title})

    if request.method == 'POST':
        review = Reviews(
            email=request.POST['email'],
            name=request.POST['name'],
            text=request.POST['text']
            )
        review.save()

        return redirect(post.get_absolute_url)
示例#2
0
def favorites_view(request):
    if request.method == 'GET':
        user = api_user_authentication(request)
        favorites: list
        if user is not None:
            favorites = Favorites.objects.filter(user=user)
        else:
            favorites = Favorites.objects.filter(ip=get_client_ip(request))
        result = dict([favorite.id, {
            'Product': favorite.product.name, "ProductID": favorite.product.id}] for favorite in favorites)
        return JsonResponse(result)
    elif request.method == 'DELETE':
        user = api_user_authentication(request)
        try:
            favorite = Favorites.objects.get(id=request.POST['id'])
            if user is not None:
                if favorite.user == user:
                    favorite.delete()
                    status = 'Deleted'
                else:
                    status = 'Отказано в доступе'
            else:
                if favorite.ip == get_client_ip(request):
                    favorite.delete()
                    status = 'Deleted'
        except:
            status = 'Введите корректный id избранного'
        return JsonResponse({'Status': status})
    elif request.method == 'POST':
        try:
            product = Product.objects.get(id=request.POST['product_id'])
            user = api_user_authentication(request)
            if user is not None:
                if not len(Favorites.objects.filter(user=user, product=product)):
                    Favorites.objects.create(user=user, product=product, count=1)
                    status = 'Added'
                else:
                    status = 'Уже существует такой товар в избранном'
            else:
                anonym = CustomUser.objects.get(id=3)
                if not len(Favorites.objects.filter(user=anonym, ip=get_client_ip(request), product=product)):
                    Favorites.objects.create(user=anonym, ip=get_client_ip(request),
                                         product=product, count=1)
                    status = 'Added'
                else:
                    status = 'Уже существует такой товар в избранном'
        except:
            status = 'Укажите корректный id товара'

        return JsonResponse({"status": status})
示例#3
0
 def post(self,request, *args, **kwargs):
     username = request.POST.get('username')
     password = request.POST.get('password')
     
     user = authenticate(username=username, password=password)
     nextPage = request.POST.get('next')
     if not user: # authenticate fail
         kwargs['error'] = '登入失敗'
         kwargs['username'] = username
         kwargs['nextPage'] = nextPage
         return super(CSignIn, self).get(request, *args, **kwargs)
     if not user.is_active:
         kwargs['error'] = '帳號已停用' 
         return super(CSignIn, self).get(request, *args, **kwargs)
     log = Profile.objects.get(username=username)
     log.ip = get_client_ip(request)
     log.save()
     login(request, user)
     messages.add_message(request, 50, request.user.username+'會員登入成功', extra_tags='登入成功')
     #messages.success(request, username+'會員登入成功', extra_tags='登入成功')
     return redirect(nextPage if nextPage else reverse('main:main'))
示例#4
0
    def post(self, request, *args, **kwargs):
        username = request.POST.get("username")
        password = request.POST.get("password")

        user = authenticate(username=username, password=password)
        nextPage = request.POST.get("next")
        if not user:  # authenticate fail
            kwargs["error"] = "登入失敗"
            kwargs["username"] = username
            kwargs["nextPage"] = nextPage
            return super(CSignIn, self).get(request, *args, **kwargs)
        if not user.is_active:
            kwargs["error"] = "帳號已停用"
            return super(CSignIn, self).get(request, *args, **kwargs)
        log = Profile.objects.get(username=username)
        log.ip = get_client_ip(request)
        log.save()
        login(request, user)
        messages.add_message(request, 50, request.user.username + "會員登入成功", extra_tags="登入成功")
        # messages.success(request, username+'會員登入成功', extra_tags='登入成功')
        return redirect(nextPage if nextPage else reverse("main:main"))
示例#5
0
 def post(self, request, *args, **kwargs):
     userForm = SignupForm(request.POST)
     profileform = ProfileForm(request.POST)
     CForm = CaptchaForm(request.POST)
     if not (CForm.is_valid() and userForm.is_valid() and profileform.is_valid()):
         kwargs['userForm'] = userForm
         kwargs['profileform'] = profileform
         kwargs['CForm'] = CForm
         return super(CSignUp, self).get(request, *args, **kwargs)
     
     user = userForm.save()
     password = user.password
     user.set_password(password)
     user.save()
     userProfile = profileform.save(commit=False)
     userProfile.user = user
     userProfile.username = user.username
     userProfile.ip = get_client_ip(request)
     userProfile.save()
     log = authenticate(username=user.username, password=password)
     login(request, log)
     messages.add_message(request, 50, request.user.username+'會員 謝謝您的註冊', extra_tags='註冊成功')
     #messages.success(request, '歡迎註冊')
     return redirect(reverse('main:main'))
示例#6
0
    def post(self, request, *args, **kwargs):
        userForm = SignupForm(request.POST)
        profileform = ProfileForm(request.POST)
        CForm = CaptchaForm(request.POST)
        if not (CForm.is_valid() and userForm.is_valid() and profileform.is_valid()):
            kwargs["userForm"] = userForm
            kwargs["profileform"] = profileform
            kwargs["CForm"] = CForm
            return super(CSignUp, self).get(request, *args, **kwargs)

        user = userForm.save()
        password = user.password
        user.set_password(password)
        user.save()
        userProfile = profileform.save(commit=False)
        userProfile.user = user
        userProfile.username = user.username
        userProfile.ip = get_client_ip(request)
        userProfile.save()
        log = authenticate(username=user.username, password=password)
        login(request, log)
        messages.add_message(request, 50, request.user.username + "會員 謝謝您的註冊", extra_tags="註冊成功")
        # messages.success(request, '歡迎註冊')
        return redirect(reverse("main:main"))
示例#7
0
def carts_view(request):
    if request.method == 'GET':
        user = api_user_authentication(request)
        carts: list
        if user is not None:
            carts = Carts.objects.filter(user=user)
        else:
            carts = Carts.objects.filter(ip=get_client_ip(request))
        result = dict([cart.id, {'Product': cart.product.name, "ProductID": cart.product.id,
                                 'Count': cart.count}] for cart in carts)
        return JsonResponse(result)
    elif request.method == 'PUT':
        user = api_user_authentication(request)
        try:
            count = int(request.POST['count'])
            try:
                cart = Carts.objects.get(id=request.POST['id'])
                if user is not None:
                    if cart.user == user:
                        if count != 0:
                            cart.count = count
                            cart.save()
                            status = 'Changed'
                        else:
                            cart.delete()
                            status = 'Deleted'
                    else:
                        status = 'Отказано в доступе'
                else:
                    if cart.ip == get_client_ip(request):
                        if count != 0:
                            cart.count = count
                            cart.save()
                            status = 'Changed'
                        else:
                            cart.delete()
                            status = 'Deleted'
            except:
                status = 'Введите корректный id корзины'
        except:
            status = 'Введите число'
        return JsonResponse({'Status': status})
    elif request.method == 'POST':
        try:
            product = Product.objects.get(id=request.POST['product_id'])
            user = api_user_authentication(request)
            if user is not None:
                if not len(Carts.objects.filter(user=user, product=product)):
                    Carts.objects.create(user=user, product=product, count=1)
                    status = 'Added'
                else:
                    status = 'Уже существует такой товар в корзине'
            else:
                anonym = CustomUser.objects.get(id=3)
                if not len(Carts.objects.filter(user=anonym, ip=get_client_ip(request), product=product)):
                    Carts.objects.create(user=anonym, ip=get_client_ip(request),
                                         product=product, count=1)
                    status = 'Added'
                else:
                    status = 'Уже существует такой товар в корзине'
        except:
            status = 'Укажите корректный id товара'

        return JsonResponse({"status": status})