user.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:studentsdb2 作者: trivvet 项目源码 文件源码
def user_preference(request):

    current_user = User.objects.get(username=request.user.username)

    if request.method == 'POST':

        if request.POST.get('cancel_button'):
            messages.warning(request, _(u"Changing user settings canceled"))
            return HttpResponseRedirect(reverse('home'))

        else:
            errors = {}
            stprofile = StProfile.objects.get_or_create(user=current_user)[0]

            form_first_name=request.POST.get('first_name', '').strip()
            current_user.first_name = form_first_name

            form_last_name=request.POST.get('last_name', '').strip()
            current_user.last_name = form_last_name

            form_email=request.POST.get('email', '').strip()
            users_same_email = User.objects.filter(email=form_email)
            if len(users_same_email) > 0 and current_user.email != form_email:
                current_user.email = form_email
                errors['email'] = _(u"This email address is already in use." +
                    " Please enter a different email address.")
            elif len(form_email) > 0:
                try:
                    validate_email(form_email)
                except ValidationError:
                    errors['email'] = _(u"Enter a valid email address")
                else:
                    current_user.email = form_email

            form_language=request.POST.get('lang')
            if stprofile.language != form_language:
                stprofile.language = form_language
                translation.activate(form_language)
                request.session[translation.LANGUAGE_SESSION_KEY] = form_language

            form_time_zone=request.POST.get('time_zone')
            if stprofile.time_zone != form_time_zone:
                stprofile.time_zone = form_time_zone
                timezone.activate(form_time_zone)
                request.session['django_timezone'] = form_time_zone

            if errors:
                messages.error(request, _(u'Please, correct the following errors'))
                return render(request, 'students/user_preference.html',
                    {'current_user': current_user, 'timezones': pytz.common_timezones, 'errors': errors})

            current_user.save()
            stprofile.save()

            messages.success(request, _(u"User settings changed successfully"))
            return HttpResponseRedirect(reverse('home'))

    else:
        return render(request, 'students/user_preference.html',
            {'current_user': current_user, 'timezones': pytz.common_timezones})
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号