def form(request): form = ProfileForm(auto_id='%s') if request.POST: form = ProfileForm(auto_id='%s', data=request.POST) if(form.is_valid()): # create DISABLED user user = User.objects.create_user(form.cleaned_data['username'], form.cleaned_data['email'], '') user.first_name = form.cleaned_data.get('first_name') user.last_name = form.cleaned_data.get('last_name') user.is_active = 0 user.save() # populate user's profile Profile.objects.create( user = user, auth_type = 'local', sur_name = form.cleaned_data.get('sur_name') ) # prepare activation code md5hash = hashlib.md5() md5hash.update(str(user.id+int(random.random()*50))) Activation.objects.create( user = user, type = 'email', value = form.cleaned_data['email'], code = md5hash.hexdigest() ) # send HTML email to newly registered user user.get_profile().send_email( 'Активация учетной записи на портале mamochkam.com', ACTIVATION_MESSAGE['text'](md5hash.hexdigest()), ACTIVATION_MESSAGE['html'](md5hash.hexdigest()) ) return render_to_response('user/register/thanx.html', { 'email': user.email }, context_instance=RequestContext(request)) return render_to_response( 'user/register/form.html', {'form': form}, context_instance=RequestContext(request) )
def form(request): profile = Profile.objects.get(user=request.user) form = ProfileForm(auto_id='%s', initial={ 'id' : request.user.id, 'username' : request.user.username, 'email' : request.user.email, 'avatar' : profile.avatar, 'first_name': request.user.first_name, 'sur_name' : profile.sur_name, 'last_name' : request.user.last_name, 'gender' : profile.gender, 'birthdate' : profile.birthdate, 'phone' : profile.phone, 'icq' : profile.icq, }) if request.POST: form = ProfileForm(auto_id='%s', data=request.POST, files=request.FILES) if(form.is_valid()): # update user info and profile User.objects.filter(id=request.user.id).update( username = form.cleaned_data.get('username'), email = form.cleaned_data.get('email'), first_name = form.cleaned_data.get('first_name'), last_name = form.cleaned_data.get('last_name') ) Profile.objects.filter(id=request.user.get_profile().id).update( user = request.user, avatar = request.FILES and 'upload/avatars/'+str(request.user.id) or '', sur_name = form.cleaned_data.get('sur_name'), gender = form.cleaned_data.get('gender'), birthdate = form.cleaned_data.get('birthdate'), phone = form.cleaned_data.get('phone'), icq = form.cleaned_data.get('icq') ) # resize and save uploaded avatar if request.FILES: filename = settings.UPLOAD_ROOT+'avatars/'+str(request.user.id) avatar = open(filename,'wb+') for chunk in request.FILES['avatar'].chunks(): avatar.write(chunk) avatar.close() image = Image.open(filename) if image.mode not in ('L', 'RGB'): image = image.convert('RGB') image.thumbnail((70, 70), Image.ANTIALIAS) image.save(filename, image.format) Profile.objects.filter(id=form.cleaned_data.get('id')).update( avatar='upload/avatars/'+str(request.user.id) ) profile = Profile.objects.get(user=request.user) return render_to_response('user/profile.html', { 'form' : form, 'profile': profile, }, context_instance=RequestContext(request))