Я создаю проект, и у меня есть 2 проблемы.
В models.py у меня есть:
from django.db import models
from children.models import Child
from django.contrib.auth.models import User
class OrderLineItem(models.Model):
order= models.ForeignKey("Order", null=False, on_delete=models.CASCADE, related_name="order")
child = models.ForeignKey(Child, null=False, on_delete=models.CASCADE)
donation = models.IntegerField(blank=False)
def __str__(self):
return "{0}-{1}".format(
self.donation, self.child.name)
class Order(models.Model):
full_name = models.ForeignKey(User, blank=False, on_delete=models.CASCADE)
phone_number = models.CharField(max_length=20, blank=False)
country = models.CharField(max_length=40, blank=False)
postcode = models.CharField(max_length=20, blank=True)
town_or_city = models.CharField(max_length=40, blank=False)
street_address1 = models.CharField(max_length=40, blank=False)
street_address2 = models.CharField(max_length=40, blank=True)
date = models.DateField()
orderlineitem = models.ForeignKey(OrderLineItem, on_delete=models.CASCADE, related_name="orderlineitem")
def __str__(self):
return "{0}-{1}-{2}".format(self.id, self.date, self.full_name)
В html-кассе у меня есть:
<form role="form" method="post" id="payment-form" action="{% url 'checkout' %}">
<legend>Payment Details</legend>
<div id="credit-card-errors" style="display: none;">
<div id="alert-message block-message error" id="stripe-error-message"></div>
</div>
<div class="form-group col-md-6">
{{ order_form | as_bootstrap }}
</div>
<div class="form-group col-md-6">
{{ payment_form | as_bootstrap }}
</div>
{% csrf_token %}
<div class="form-group col-md-12">
<input class=" btn btn-primary" id="submit_payment_btn" name="commit" type="submit" value="Submit Payment">
</div>
</form>
Есть 2 проблемы: 1. Я не могу вполное имя только текущий пользователь, но все пользователи 2. Это позволяет мне только один заказ на пользователя, то есть, если я пытаюсь разместить другой заказ с тем же пользователем, я получаю эту ошибку: Заказ с этим полным именем уже существует. Как я могу это исправить?