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)
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})
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'))
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"))
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'))
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"))
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})