gpt4 book ai didi

python - 显示 Django Admin 的购买历史记录

转载 作者:行者123 更新时间:2023-12-01 08:41:55 24 4
gpt4 key购买 nike

enter image description here我试图在每个用户的仪表板上显示每个用户的购买历史记录。我在 Stripe 中制作了一些虚拟订单,这些订单正在运行,但我在页面的订单历史记录部分中显示订单时遇到困难。

我也不确定订单是否正确链接到注册用户,因为我似乎对这种方法感到困惑

有人可以帮助我或给我指出正确的方向吗?

<div class="container">
<div class="row">
<div class="col-sm-12 col-md-12 col-lg-12">

<table class="table table-striped">
<h3>Your order history</h3>
<hr>

<tr>
<th>Date</th>
<th>Invoice ID</th>
<th>Description</th>
<th>Total</th>
</tr>
{% for orders in orders %}
<tr>
<td scope="row">{{ order.quantity }}</td>
<td>xxx</td>
<td>xxx</td>
<td>xxx</td>
</tr>
{% endfor %}

</table>

</div>

我的结帐 View .py

from django.contrib import messages, auth
from django.contrib.auth.decorators import login_required
from checkout.forms import MakePaymentForm
from django.shortcuts import render, get_object_or_404, redirect, reverse
from django.template.context_processors import csrf
from django.conf import settings
from babysitters.models import Babysitter
import stripe

# stripe.api_key = settings.STRIPE_SECRET


@login_required(login_url="/accounts/login")
def buy_now(request, id):
if request.method == 'POST':
form = MakePaymentForm(request.POST)
if form.is_valid():
try:
babysitter = get_object_or_404(Babysitter, pk=id)
customer = stripe.Charge.create(
amount= int(babysitter.price * 100),
currency="EUR",
description=babysitter.firstName,
card=form.cleaned_data['stripe_id'],
)
except (stripe.error.CardError):
messages.error(request, "Your card was declined!")

if customer.paid:
messages.success(request, "You have successfully paid")
return redirect(reverse('babysitters'))
else:
messages.error(request, "Unable to take payment")
else:
messages.error(request, "We were unable to take a payment with that card!")

else:
form = MakePaymentForm()
babysitter = get_object_or_404(Babysitter, pk=id)

args = {'form': form, 'publishable': settings.STRIPE_PUBLISHABLE, 'babysitter': babysitter}
args.update(csrf(request))

return render(request, 'checkout.html', args)

我的 Models.py 文件

from django.db import models
from babysitters.models import Babysitter
from django.contrib.auth.models import User

# Create your models here.

class Order(models.Model):
first_name = models.CharField(max_length=255, blank=True)
last_name = models.CharField(max_length=255, blank=True)
address1 = models.CharField(max_length=255, blank=True)
address2 = models.CharField(max_length=255, blank=True)
city = models.CharField(max_length=20, null=True)
county = models.CharField(max_length=100, null=True)
postcode = models.CharField(max_length=7, null=True)
email = models.CharField(max_length=50, blank=True, null=True)
phone = models.CharField(max_length=10, blank=True)
date = models.DateField()

def __str__(self):
return "{0}-{1}-{2}".format(self.id, self.date, self.user)



class OrderLineItem(models.Model):
user = models.ForeignKey(User, null=False),
order = models.ForeignKey(Order, null=False, related_name='orders')
babysitter = models.ForeignKey(Babysitter, null=False)
quantity = models.IntegerField(blank=False)

def __str__(self):
return "{0} {1} @ {2}".format(self.quantity, self.babysitter.firstName, self.babysitter.price)

最佳答案

订单历史记录未显示,因为您使用了名为 orders 的循环变量,但在访问每个属性时引用了 order。将循环变量重命名为order:

{% for order in orders %}
<tr>
<td scope="row">{{ order.quantity }}</td>
<td>xxx</td>
<td>xxx</td>
<td>xxx</td>
</tr>
{% endfor %}

关于python - 显示 Django Admin 的购买历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53463542/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com