In need of help regarding HTML Submit button

20 views
Skip to first unread message

Aritra Ray

unread,
Jun 14, 2021, 1:09:27 PM6/14/21
to django...@googlegroups.com
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'))

Nikeet NA

unread,
Jun 14, 2021, 2:42:49 PM6/14/21
to Django users
Change the type of button back to type='button" rather than type="submit"

Aritra Ray

unread,
Jun 17, 2021, 7:12:59 AM6/17/21
to django...@googlegroups.com
Thank you, it worked!

--
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...@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 all
Reply to author
Forward
0 new messages