Example #1
0
def register(request):
    if request.method == 'POST':
        form = ShopUserRegisterForm(request.POST, request.FILES)
        if form.is_valid():
            user = form.save()  # приводит к сохранению в базу данных
            if send_verify_mail(user):
                print('Сообщение успешно отправлено!')
                return HttpResponseRedirect(reverse('authapp:login'))
            else:
                print('Ошибка: сообщение не отправлено.')
                return HttpResponseRedirect(reverse('authapp:login'))
    else:
        form = ShopUserRegisterForm()
        content = {'title': 'Регистрация', 'form': form}
        return render(request, 'authapp/register.html', content)

    content = {
        'title': 'Регистрация пользователя',
        'form': form,
        'main_menu': main_menu(),
        'info_pages': footer_menu(),
        'basket': get_basket(request),
    }

    return render(request, 'authapp/register.html', content)
Example #2
0
def login(request):
    # если не делать условие, то когда не будет next - будет ошибка
    next = request.GET['next'] if 'next' in request.GET.keys() else None
    if request.method == 'POST':
        # форма заполнится данными
        form = ShopUserLoginForm(
            data=request.POST
        )  # data используется для работы с AuthenticationForm
        if form.is_valid(
        ):  # проверили валидность введенных данных и вывод сообщений об ошибках
            username = request.POST['username']  # получаем логин и пароль
            password = request.POST['password']
            user = auth.authenticate(username=username, password=password)
            if user and user.is_active:  # активирован ли аккаунт
                next = request.POST['next'] if 'next' in request.POST.keys(
                ) else None
                auth.login(request, user)
                return HttpResponseRedirect(
                    '/' if not next else next)  # первый вариант редиректа
    else:
        form = ShopUserLoginForm()
    context = {
        'title': 'Авторизация на сайте',
        'form': form,
        'next': next,
        'main_menu': main_menu(),
        'info_pages': footer_menu(),
        'basket': get_basket(request),
    }
    return render(request, 'authapp/login.html', context)
Example #3
0
def index(request):
    content = {
        'title': 'Корзина',
        'header1_page': 'Корзина товаров',
        'main_menu': main_menu(),
        'info_pages': footer_menu(),
        'basket': get_basket(request),
    }
    return render(request, 'basketapp/index.html', content)
Example #4
0
def update(request):
    if request.method == 'POST':
        # в instance передаем существующий объект пользователя для редактирования
        form = ShopUserUpdateForm(request.POST,
                                  request.FILES,
                                  instance=request.user)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(reverse('auth:update'))
    else:
        form = ShopUserUpdateForm(instance=request.user)
    content = {
        'title': 'Редактирование данных',
        'form': form,
        'main_menu': main_menu(),
        'info_pages': footer_menu(),
        'basket': get_basket(request),
    }
    return render(request, 'authapp/update.html', content)
Example #5
0
def basket_update(request, pk, quantity):
    if request.is_ajax():
        basket_obj = get_object_or_404(Basket, pk=pk)
        quantity = int(quantity)
        if quantity > 0:
            basket_obj.quantity = quantity
            basket_obj.save()
        else:
            basket_obj.delete()
        content = {
            'title': 'Корзина',
            'header1': 'Корзина',
            'main_menu': main_menu(),
            'info_pages': footer_menu(),
            'basket': get_basket(request),
        }
        result = render_to_string('basketapp/includes/inc__basket_list.html',
                                  content)
        return JsonResponse({
            'result': result,
        })
Example #6
0
def verify(request, email, activation_key):
    content = {
        'title': 'Активация пользователя',
        'main_menu': main_menu(),
        'info_pages': footer_menu(),
        'basket': get_basket(request),
    }
    try:
        user = ShopUser.objects.get(email=email)
        if user.activation_key == activation_key and not user.is_activation_key_expired(
        ):
            user.is_active = True
            user.save()
            auth.login(request,
                       user,
                       backend='django.contrib.auth.backends.ModelBackend')
            return render(request, 'authapp/verification.html', content)
        else:
            print(f'При активации пользователя {user} произошла ошибка.')
            return render(request, 'authapp/verification.html', content)
    except Exception as e:
        print(f'Ошибка при активации пользователя: {e.args}')
        return render(request, 'authapp/verification.html', content)
Example #7
0
def update(request):
    if request.method == 'POST':
        form = ShopUserUpdateForm(request.POST,
                                  request.FILES,
                                  instance=request.user)
        # она заполняется данными из связанной модели
        profile_form = ShopUserProfileEditForm(
            request.POST, instance=request.user.shopuserprofile)
        if form.is_valid() and profile_form.is_valid():
            form.save()
            return HttpResponseRedirect(reverse('auth:update'))
    else:
        form = ShopUserUpdateForm(instance=request.user)
        profile_form = ShopUserProfileEditForm(
            instance=request.user.shopuserprofile)
    content = {
        'title': 'Редактирование данных',
        'form': form,
        'profile_form': profile_form,
        'main_menu': main_menu(),
        'info_pages': footer_menu(),
        'basket': get_basket(request),
    }
    return render(request, 'authapp/update.html', content)