Django:Can';t通过外键访问模板上的数据
我想在我的模板中访问Django:Can';t通过外键访问模板上的数据,django,Django,我想在我的模板中访问事务_。因此,我的方法是通过订单模型,因为我已经在使用它,它是外键。我所做的是 {{ order.ambassador_transaction }} 但我得到的只是大使.AmbassadorTransaction.None。我检查了几次,但它是通过外键连接的。有人知道我做错了什么吗 views.py class OrderListView(ListView): allow_empty = False template_name = 'orders/ord
事务_
。因此,我的方法是通过订单模型,因为我已经在使用它,它是外键。我所做的是
{{ order.ambassador_transaction }}
但我得到的只是大使.AmbassadorTransaction.None
。我检查了几次,但它是通过外键连接的。有人知道我做错了什么吗
views.py
class OrderListView(ListView):
allow_empty = False
template_name = 'orders/order_list.html'
def get_queryset(self):
return Attendee.objects.filter(
order__order_reference=self.kwargs['order_reference'],
order__access_key=self.kwargs['access_key'],
)
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['order'] = Order.objects.get(
order_reference=self.kwargs['order_reference'],
)
return context
models.py
class AmbassadorTransaction(models.Model):
order = models.ForeignKey(
Order,
on_delete=models.PROTECT,
related_name='ambassador_transaction'
)
ambassador = models.ForeignKey(
AmbassadorProfile,
on_delete=models.PROTECT,
related_name='ambassador_profile'
)
class Order(models.Model):
event = models.ForeignKey(
Event,
on_delete=models.PROTECT,
related_name='orders'
)
order_reference = models.CharField(
max_length=10,
unique=True,
)
total_gross = models.DecimalField(
max_digits=25,
decimal_places=2
)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
您的订单
型号中没有ambassador\u交易
外键
如果要访问与Order
实例相关的所有AmbassadorTransaction
,可以在视图中迭代Order.AmbassadorTransaction\u set.all()
,或在模板中迭代Order.AmbassadorTransaction.all
您还可以使用AmbassadorTransaction
从AmbassadorTransaction
对象访问订单。订单
因为您的型号。ForeignKey(…)
在AmbassadorTransaction
中,而不是在订单
中,因此这是一个解决方案:
{% for ambassador in order.ambassador_transaction.all %}
...
{% endfor %}