Джанго: моделирует отношения и запросы - PullRequest
0 голосов
/ 27 апреля 2019

Я несколько раз тестировал отношения модели, чтобы пользователь выбирал количество билетов, которые будут содержать информацию в виде ID билета , и вместе с ним приходит Идентификатор заказа , который я буду использовать после того, как пользователь введет с ним свою информацию CC.Пользователь может заказать много билетов, и к каждому идентификатору билета прикреплен идентификатор заказа.Когда я запрашиваю Билет для создания в моем views.py - он показывает, что "order_id" не определен.Как сделать запрос, чтобы при создании информации о заявке к ней прикреплялся идентификатор заказа?Ваши предложения будут полезны!

models.py

class User(models.Model):
    first_name=models.CharField(max_length=100)
    last_name=models.CharField(max_length=100)
    email=models.CharField(max_length=100)
    password=models.CharField(max_length=100)
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now=True)

class Order(models.Model):
    full_name=models.CharField(max_length=100)
    cc_number=models.PositiveIntegerField()
    exp_date=models.PositiveIntegerField()
    cvc=models.PositiveIntegerField()
    buyer=models.ForeignKey(User, related_name="bought_tickets", on_delete=models.PROTECT)
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now=True)

class Ticket(models.Model):
    venue=models.CharField(max_length=100)
    quantity=models.PositiveIntegerField()
    price=models.DecimalField(default=25.00, max_digits=5, decimal_places=2, null=True, blank=True)
    loop=models.CharField(max_length=100)
    purchaser = models.ForeignKey(User, related_name="purchases", on_delete=models.PROTECT)
    order=models.ForeignKey(Order, related_name="orders", on_delete=models.PROTECT)
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now=True)

views.py

def add(request):
    if not 'user_id' in request.session:
        return redirect('/chrisgrafil')
    if request.method!='POST':
        messages.error(request, 'Please select the following options')
        return redirect('/dashboard')
    else:
        Ticket.objects.create(venue=request.POST['venue'], quantity=request.POST['quantity'], loop=request.POST['loop'], purchaser=User.objects.get(id=request.session['user_id']), 

        order=Order.objects.get(id=['order_id']))

        return redirect ('/confirmation')
...