Change the type of button back to type='button" rather than type="submit"

On Monday, 14 June 2021 at 22:39:27 UTC+5:30 arit...@gmail.com wrote:

> Hi, 
> I'm facing an error with the Place Order button not working when the user 
> is choosing the default address. Kindly help me out in this regard and let 
> me know if any other files are needed.
> Thank you in advance
> Regards,
> Aritra.
>
> class Address(BaseModel):
>     user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, 
> blank=True)
>     address = models.CharField(max_length=500, null=True)
>     phone = models.CharField(max_length=10, null=False)
>     city = models.CharField(max_length=100, null=True)
>     state = models.CharField(max_length=100, null=True)
>     pincode = models.CharField(max_length=100, null=False)
>     default = models.BooleanField(default=False, null=True, blank=True)
>
>     def __str__(self):
>         return self.user.username
>
>     class Meta:
>         verbose_name_plural = 'Addresses'
>
> <div class="row">
>      {% if default_address %}
>          <div class="custom-control custom-checkbox">
>              <input type="checkbox" class="control-input" name="use_default" 
> id="use_default">
>              <label class="control-label" for="use_default">Use default 
> shipping address: {{ default_address.address|truncatechars:40 }}</label>
>          </div>
>      {% endif %}
> </div>
> <div class="clearfix">
>      <button type="submit" class="filled-button pull-left">
>          <a style="color: #cd9921;" href="{% url 'store:cart-page' %}" 
> >Back</a>
>      </button>
>      <button type="submit" class="filled-button pull-right">Place 
> Order</button>
> </div>
>
> class CheckoutView(View):
>     def get(self, *args, **kwargs):
>         try:
>             order = Cart.objects.get(user=self.request.user, ordered=False)
>             form = CheckoutForm()
>             context = {
>                 'form': form,
>                 'order': order,
>             }
>
>             shipping_address_qs = Address.objects.filter(
>                 user=self.request.user,
>                 default=True
>             )
>             if shipping_address_qs.exists():
>                 context.update(
>                     {'default_address': shipping_address_qs[0]})
>             return render(self.request, "checkout.html", context)
>         except ObjectDoesNotExist:
>             messages.info(self.request, "You do not have an active order")
>             return redirect(reverse('store:cart-page'))
>
>     def post(self, *args, **kwargs):
>         form = CheckoutForm(self.request.POST)
>         try:
>             order = Cart.objects.get(user=self.request.user, ordered=False)
>             if form.is_valid():
>                 use_default = form.cleaned_data.get(
>                     'use_default')
>                 if use_default:
>                     print("Using the default shipping address")
>                     address_qs = Address.objects.filter(
>                         user=self.request.user,
>                         default=True
>                     )
>                     if address_qs.exists():
>                         shipping_address = address_qs[0]
>                         order.shipping_address = shipping_address
>                         order.save()
>                     else:
>                         messages.info(self.request, "No default shipping 
> address available")
>                         return redirect('store:cart-page')
>                 else:
>                     address = form.cleaned_data.get('address')
>                     pincode = form.cleaned_data.get('zip')
>                     phone = form.cleaned_data.get('phone')
>                     city = form.cleaned_data.get('city')
>                     state = form.cleaned_data.get('state')
>                     if form.is_valid():
>                         shipping_address = Address(
>                             user=self.request.user,
>                             address=address,
>                             pincode=pincode,
>                             state=state,
>                             city=city,
>                             phone=phone
>                         )
>                         shipping_address.save()
>                         order.shipping_address = shipping_address
>                         order.save()
>
>                         set_default = form.cleaned_data.get(
>                             'set_default')
>                         if set_default:
>                             shipping_address.default = True
>                             shipping_address.save()
>
>                     else:
>                         messages.info(self.request, "Please fill in the 
> required shipping address fields")
>         except ObjectDoesNotExist:
>             messages.warning(self.request, "You do not have an active order")
>             return redirect(reverse('store:cart-page'))
>         return redirect(reverse('store:payment-page'))
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/0937286b-b09f-4ad9-8db5-1f82e6dae787n%40googlegroups.com.

Reply via email to