Exemplo n.º 1
0
def register(request):
    registered = False
    if request.method == "POST":
        form_user = forms.UserForm(data = request.POST)
        form_por = forms.UserProfileInfoForm(data = request.POST)
        if form_user.is_valid() and form_por.is_valid():
            user = form_user.save()
            user.set_password(user.password)
            user.save()

            profile = form_por.save(commit = False)
            profile.user = user
            
            print(request.FILES)
            if 'picture' in request.FILES:
                profile.picture = request.FILES['picture']
            
            profile.save()
            registered = True
        else:
            print(form_user.errors, form_por.errors)
    else:
        form_user = forms.UserForm()
        form_por = forms.UserProfileInfoForm()
    return render(request, "users/registration.html", {'user_form':form_user,'profile_form': form_por, 'registered': registered})
Exemplo n.º 2
0
def login(request):
    if request.session.get('is_login', None):   # 不允许重复登录
        return redirect('index')
    if request.method == 'POST':
        login_form = forms.UserForm(request.POST)
        message = '请输入账号和密码!'
        if login_form.is_valid():
            username = login_form.cleaned_data.get('username')
            password = login_form.cleaned_data.get('password')
            try:
                user = models.User.objects.get(name=username)
            except:
                message = '用户不存在!'
                return render(request, 'login.html', locals())    # locals() 函数会以字典类型返回当前位置的全部局部变量
            if user.password == password:
                request.session['is_login'] = True
                request.session['user_id'] = user.id
                request.session['user_name'] = user.name
                request.session['user_power'] = user.power
                return redirect('index')
            else:
                message = '密码不正确!'
                return render(request, 'login.html', locals())
        else:
            return render(request, 'login.html', locals())
    login_form = forms.UserForm()
    return render(request, 'login.html', locals())
Exemplo n.º 3
0
def login(request):
    """系统登录"""
    if request.session.get('is_login', None):
        return redirect('index')
    if request.method == 'POST':
        login_form = forms.UserForm(request.POST)
        message = '请输入账号和密码!'
        if login_form.is_valid():
            username = login_form.cleaned_data.get('username', None)
            password = login_form.cleaned_data.get('password', None)
            try:
                user = User.objects.get(name=username)
            except:
                message = '用户不存在!'
                return render(request, 'login.html', locals())
            if user.password == password:
                request.session['is_login'] = True
                request.session['user_id'] = user.id
                request.session['user_name'] = user.name
                request.session['user_role'] = user.role
                return redirect('index')
            else:
                message = '密码不正确'
                return render(request, 'login.html', locals())
        else:
            return render(request, 'login.html', locals())
    login_form = forms.UserForm()
    return render(request, 'login.html', locals())
Exemplo n.º 4
0
def users(request):
    form = forms.UserForm()
    if request.method == 'POST':
        form = forms.UserForm(request.POST)

        if form.is_valid():
            form.save(commit=True)
            return index(request)
        else:
            return 'Error Validating form'
    return render(request, 'users/signup.html', context={'form': form})
Exemplo n.º 5
0
def formulario(request):
    form = forms.UserForm()
    if request.method == 'POST':
        form = forms.UserForm(request.POST)

        if form.is_valid():
            print('Validation succeeded')
            print('Name: ' + form.cleaned_data['name'])
            print('Email: ' + form.cleaned_data['email'])
            print('Texto: ' + form.cleaned_data['text'])

    return render(request, 'formulario.html', {'form': form})
Exemplo n.º 6
0
def register(request):
    if request.user.is_authenticated:
        return redirect('catalog:index')

    if request.method == 'POST':
        user_form = forms.UserForm(data=request.POST)
        user_profile_form = forms.UserProfileForm(data=request.POST)

        if user_form.is_valid() and user_profile_form.is_valid():
            username = user_form.cleaned_data.get('username')
            messages.success(
                request,
                f'Congratulations! You are successfully registered as {username}.'
            )
            user = user_form.save()

            # Password Hashing
            user.set_password(user.password)
            user.save()

            profile = user_profile_form.save(commit=False)

            # We need to state one to one relation before saving
            profile.user = user

            if 'profile_picture' in request.FILES:
                profile.profile_picture = request.FILES['profile_picture']

            profile.save()

            return redirect('users:login')

        else:
            pass
    else:
        user_form = forms.UserForm()
        user_profile_form = forms.UserProfileForm()

    return render(request, 'users/register.html', {
        'user_form': user_form,
        'user_profile_form': user_profile_form
    })
Exemplo n.º 7
0
def signup(request):
    form = forms.UserForm(request.POST or None)
    ctx = {
        'form': form,
    }

    if request.method == 'POST':
        if form.is_valid():
            form.save(request)
            return render(request, 'users/signup_done.html', ctx)

    return render(request, 'users/signup.html', ctx)
Exemplo n.º 8
0
def login(request):
    if request.session.get('is_login', None):  # 不允许重复登录
        return redirect('/index/')
    if request.method == 'POST':
        login_form = forms.UserForm(request.POST)
        message = '请检查填写的内容!'
        if login_form.is_valid():
            username = login_form.cleaned_data.get('username')
            password = login_form.cleaned_data.get('password')

            try:
                user = User.objects.get(name=username)
            except :
                message = '用户不存在!'
                return render(request, 'login.html', locals())

            if not user.has_confirmed:
                message = '该用户还未经过邮件确认!'
                return render(request, 'login.html', locals())

            if not user.in_office:
                message = '该用户已离职!'
                return render(request, 'login.html', locals())

            if user.password == password:
                request.session['is_login'] = True
                request.session['user_id'] = user.id
                request.session['user_name'] = user.name
                return redirect('/index/')
            else:
                message = '密码不正确!'
                return render(request, 'login.html', locals())
        else:
            return render(request, 'login.html', locals())
    message = request.GET.get('message', '')
    login_form = forms.UserForm()
    return render(request, 'login.html', locals())
Exemplo n.º 9
0
    def get(self, request):
        user_instance = get_object_or_404(klass=User, pk=request.user.id)
        profile_instance = get_object_or_404(klass=users_models.Profile,
                                             user=request.user)

        form_user = forms.UserForm(instance=user_instance)
        form_profile = forms.ProfileForm(instance=profile_instance)

        return render(request=request,
                      template_name='users/user_form.html',
                      context={
                          'form_user': form_user,
                          'form_profile': form_profile,
                          'action': 'Edit Profile'
                      })
Exemplo n.º 10
0
def register(request):
    """Adds a new user by saving and linking User and UserProfile forms."""
    if request.method != 'POST':
        return render(request, 'register.html')

    user_form = forms.UserForm(request.POST)
    profile_form = forms.UserProfileForm(request.POST)

    if user_form.is_valid() and profile_form.is_valid():
        user = user_form.save()
        user.set_password(user.password)
        user.save()

        profile = profile_form.save(commit=False)
        profile.user = user
        profile.save()

    # Log the new user in
    return login(request)
Exemplo n.º 11
0
def register(request):
    """Returns registration page and adds a new user to database."""
    if request.method != 'POST':
        return render(request, 'register.html')

    user_form = forms.UserForm(request.POST)
    profile_form = forms.UserProfileForm(request.POST)

    if user_form.is_valid() and profile_form.is_valid():
        user = user_form.save()
        user.set_password(user.password)
        user.save()

        profile = profile_form.save(commit=False)
        profile.user = user
        profile.save()

    # Log the new user in
    return login(request)
Exemplo n.º 12
0
    def post(self, request):
        form_user = forms.UserForm(request.POST)
        form_profile = forms.ProfileForm(request.POST)

        if form_user.is_valid() and form_profile.is_valid():
            form_user.save()
            user = form_user.save()
            profile = form_profile.save(commit=False)
            profile.user = user
            profile.save()

            login(request=request, user=user)
            messages.success(request, message='Account created successfully')
            return HttpResponseRedirect(redirect_to=reverse('profile-view'))

        return render(request=request,
                      template_name='users/user_form.html',
                      context={
                          'form_user': form_user,
                          'form_profile': form_profile,
                          'action': 'Create Profile'
                      })
Exemplo n.º 13
0
    def post(self, request):
        user_instance = get_object_or_404(klass=User, pk=request.user.id)
        profile_instance = get_object_or_404(klass=users_models.Profile,
                                             user=request.user)

        form_user = forms.UserForm(request.POST, instance=user_instance)
        form_profile = forms.ProfileForm(request.POST,
                                         instance=profile_instance)

        if form_user.is_valid() and form_profile.is_valid():
            form_profile.save()
            form_user.save()
            messages.success(
                request,
                message=
                f'Updated data for {user_instance.username} successfully')

        return render(request=request,
                      template_name='users/user_form.html',
                      context={
                          'form_user': form_user,
                          'form_profile': form_profile,
                          'action': 'Edit Profile'
                      })
Exemplo n.º 14
0
 def test_form_user_profile(self):
     user = User.objects.create_user('*****@*****.**', 'password')
     user_form = forms.UserForm(data={'user': user})
     profile_form = forms.ProfileForm(data={'user': user, 'phone': '9999999999'})
     assert (user_form.is_valid() and profile_form.is_valid()) is True