def AddressPage(request): location = "Profile / Address" fname = request.user.first_name lname = request.user.last_name st = "%s %s" %(fname,lname) profile = Profile.objects.get( Q(user = request.user.id) ) picture = "/media/%s"%(profile.picture) if request.method == "POST": form = AddressForm(request.POST) if form.is_valid(): form.save(commit=True) messages.success(request,"Address Saved!") print("working") return redirect('../../profile') else: messages.error(request, "The form wasn't valid for some reason") #return redirect('../address-info') #print(get_object_or_404(form)) print("Not working") else: form = AddressForm() return render(request, 'users/update-address.html', { 'form': form, 'username': st, 'location': location, 'logout':'../../logout', 'picture' : picture })
def done(self, form_list, form_dict, **kwargs): """ Gather the data from the three forms. If the user already exists, update the profile, if not create a new user. Then add a new membership. """ login_step = self.get_cleaned_data_for_step('login') address_step = self.get_cleaned_data_for_step('user_info')['address'] profile_step = self.get_cleaned_data_for_step('user_info')['profile'] membership_step = self.get_cleaned_data_for_step('membership') # Renew membership for current user if login_step is None: u = self.request.user # Update the user profile profile_form = ProfileForm(profile_step, instance=u.profile) u.profile = profile_form.save() u.save() else: # Create a new user from steps 'login' & 'profile' u = User(email=login_step['email']) u.is_active = False # Not activated yet p = Profile(**profile_step) p.save() u.profile = p u.save() # Create or update address info addresses = u.profile.address_set.all() if len(addresses) > 0: add = addresses[0] add = AddressForm(address_step, instance=addresses[0]) else: add = Address(**address_step) add.profile = u.profile add.save() # Create a new Membership object membership = Membership(**membership_step) membership.profile = u.profile membership.start_date = membership.next_start_date() membership.amount = membership.compute_amount() membership.duration = 1 # valid for one year membership.save() # Send a confirmation email if the user has to pay if membership.amount > 0: membership.email_user(status="submitted") mb_url = self.request.build_absolute_uri( reverse('membership-detail', args=[membership.uid])) return redirect("membership-detail", membership.uid)
def create(request): """Добавление нового адреса доставки""" initial = { 'email': request.user.email, } # TODO: Возможно, заполнять только для розничных покупателей? if request.user.title: initial['receiver_title'] = request.user.title if request.user.phone: initial['phone'] = request.user.phone if request.POST: form = AddressForm(request.POST, initial=initial) if form.is_valid(): address = form.save(commit=False) address.user = request.user address.save() return HttpResponseRedirect(reverse('users.address.index')) else: form = AddressForm(initial=initial) context = { 'form': form, } return render(request, 'users/addresses/create.html', context)
def post(self, request, clientid, *args, **kwargs): try: client = ClientUser.objects.get(pk=clientid) address = Address.objects.get(user=client) except ObjectDoesNotExist as e: pass except MultipleObjectsReturned as e: pass clientForm = ClientUserForm(request.POST, instance=client) addressForm = AddressForm(request.POST, instance=Address(user=client, pk=address.id)) if clientForm.is_valid() and addressForm.is_valid(): clientForm.save() addressForm.save() return HttpResponseRedirect('/costomer/data/') return render(request, self.template_name, self.__context)
def address(request): if request.method =='POST': form = AddressForm(request.POST) if form.is_valid(): profile = form.save(commit=False) # this insures it is assigned to user profile.save() profile.users.set([request.user.pk]) # many to many user save return redirect('myaccount') else: form = AddressForm() return render(request, 'address.html', {'form': form})
def update(request, address_id): address = get_object_or_404(Address, id=address_id, user=request.user) if request.POST: form = AddressForm(request.POST, instance=address) if form.is_valid(): address = form.save(commit=False) address.user = request.user address.save() return HttpResponseRedirect(reverse('users.address.index')) else: form = AddressForm(instance=address) context = { 'form': form, } return render(request, 'users/addresses/update.html', context)