有两个模型,需要同时将它们同时放在一个页面上。我知道我需要一个带有两个模型的视图。
洛尔
继续我得到了什么:def inventory(request):
products = Product3.objects.all()
productinfo = {
"product_detail": products
}
return render_to_response('inventory.html', productinfo, context_instance=RequestContext(request))
def itemdetailpage(request, id):
property = Product3.objects.get(pk=id)
property1 = property.images.all()
itemin = {"itemdetail": property1 }
return render_to_response('details.html', itemin, context_instance=RequestContext(request))
如何将这些数据放入一个视图?所以我可以在一个模板中显示它们的内容,并使用itemdetail页面代码的参数部分。?
视图中的解决方案如下: 我在发布此消息后大约一个小时就想到了这一点,感谢Dan的回复,并且绝对正确,一切都在那里:
def itemdetailpage(request, id):
property = Product3.objects.get(pk=id)
property1 = property.images.all()
itemin = {'property': property, 'imagedetail': property1}
return render_to_response('details.html', itemin, context_instance=RequestContext(request))
答案 0 :(得分:0)
您已拥有所需的所有信息。您知道如何使用product.images.all()
获取与项目相关的图像。在迭代产品时,您可以在模板中执行此操作;你根本不需要第二个视图。
{% for product in products %}
{{ product.name }}
{% for image in product.images.all %}
{{ image.image }}
{% endfor %}
{% end for %}
答案 1 :(得分:-1)
如果您绝对需要两个视图,则可以进行AJAX调用以更新页面内容。如果您可以自由更改代码,为什么不从其中一个视图返回所有需要的数据?
旁注:您应该使代码更具可读性。