Django:在一个vi中使用多个模型

2024-06-25 23:05:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有三个模型通过外键链接(Guest,Item,Order(FK Item,FK Guest))。现在,我想编写一个视图,该视图显示模型中客人的详细信息,以及一个表视图,其中列出了处于未付款状态的所有订单。在

第一部分我喜欢这样。但是我怎么才能拿到订单呢?在

@login_required
def guest_detail(request, pk):
    guest = get_object_or_404(Guest, pk=pk)
    if request.method == "POST":
        form = RegisterGuestForm(request.POST, instance=guest)
        if form.is_valid():
            guest = form.save(commit=False)
            guest.save()
            #post.published_date = timezone.now()
            return redirect('guest_detail', pk=guest.pk)
    else:
            form = RegisterGuestForm(instance=guest)
    context = {'form': form}
    return render(request, 'hotel/register_guest.html', context)

订单模型如下所示:

^{pr2}$

Tags: instance订单模型form视图ifrequestitem
3条回答
    guest = get_object_or_404(Guest, pk=pk)
    # The 404 will catch any bad requests
    orders = Order.objects.filter(guest = guest, is_paid=False)
    context = {'form': form}
    context['orders'] = orders

记住要将其添加到上下文中,这样就可以在模板中访问它

我认为您需要从给定的Guest查询Order实例。请检查我的帮助:
orders = Order.objects.filter(guest=guest).all()
这将检索您想要的订单列表

默认情况下,您可以通过外键获取订单(如果未通过相关的\u name设置): guest.order_set.objects

祝你好运!

相关问题 更多 >