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})
评论列表
文章目录