Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
要从另一个视图django打印项目列表吗_Django_Templates_List_Views - Fatal编程技术网

要从另一个视图django打印项目列表吗

要从另一个视图django打印项目列表吗,django,templates,list,views,Django,Templates,List,Views,我有一个显示项目列表的视图 def edit_order(request, order_no): try: status_list = models.Status.objects.all() order = models.Order.objects.get(pk = order_no) if order.is_storage: items = models.StorageItem.objects.filter(orderstoragelist__orde

我有一个显示项目列表的视图

def edit_order(request, order_no):

try:
    status_list = models.Status.objects.all()
    order = models.Order.objects.get(pk = order_no)
    if order.is_storage:
        items = models.StorageItem.objects.filter(orderstoragelist__order__pk = order.pk)
    else:
        items = models.StorageItem.objects.filter(orderservicelist__order__pk = order.pk)
except:
    return HttpResponseNotFound()
我想把这些项目列表放到另一个视图中。不幸的是,事实证明这比我想象的要复杂得多

@login_required
def client_items(request, client_id = 0):
    client = None
    items = None
    try:
        client = models.Client.objects.get(pk = client_id)
        items = client.storageitem_set.all()
        item_list = models.StorageItem.objects.filter(orderstoragelist__order__pk = order.pk)
    except:
        return HttpResponse(reverse(return_clients))
    return render_to_response('items.html', {'items':items, 'client':client, 'item_list':item_list}, context_instance = RequestContext(request))
我想也许我可以粘贴项目的定义,然后调用项目列表,但这不起作用。有什么想法吗

items.html

{% for item in item_list %}
    {{item.tiptop_id}
{% endfor %}
根据您的评论:


我得到一个白色屏幕,屏幕上打印着url/在这种情况下,请使用tiptop/client

因为这就是你想要的:

except:
    return HttpResponse(reverse(return_clients))
这意味着,如果上面有任何bug或问题,您的视图将只输出一个只包含该URL的响应。也许您打算使用
HttpResponseRedirect
,因此浏览器实际上会重定向到URL-但您仍然不应该使用除之外的空白
,因为它可以防止您看到实际出了什么问题

要回答主要问题,请考虑您的
edit\u order
视图返回的内容:它为您提供了一个完整的HTML响应和一个呈现的模板。如何在另一个视图中的查询中将其用作元素?你需要有逻辑地思考这个问题


一个可能的解决方案是定义一个单独的函数,它只返回您想要的数据(作为普通查询集),两个视图都可以调用它。这是你想要的吗?

不太清楚你想在这里做什么。状态列表已定义,但未在第一个示例中使用。相关吗?您最好添加一个管理器方法,这是向模型添加模型范围行为的常用方法……我在一个名为“编辑顺序”的视图中有一个项目列表。我想在客户端项目视图中显示相同的项目列表。仅此而已。您好,您在尝试在模板上呈现项目列表或类似内容时是否遇到错误?我看到一个白色屏幕,屏幕上打印有url/在这种情况下,是tiptop/client。在这种情况下,我们也可以查看您的模板吗?如果我知道如何执行此操作,我想这将是解决方案。对不起,我认为我无法进一步帮助您。如果您不知道如何定义函数并从中返回数据,那么您不应该询问有关StackOverflow的问题,您应该遵循基本的“编程简介”教程。