如何在 Django 的包含函数中添加"variable.html"而不是硬编码模板名称?



我想为每个产品详细信息视图呈现不同的HTML模板。我使用了这个url模式

path('product-detail/<int:pk>', views.ProductDetailView.as_view(), name='product-detail'),

这是产品详细视图的视图

class ProductDetailView(View):
def get(self, request, pk):
product = Product.objects.get(pk=pk)
return render (request, 'esell/productdetail.html', {'product':product})

这是的详细模板

<h2>{{ product.title }}</h2>
<hr>
<p>Product Description: {{ product.description }}</p>

我想要不同的细节模板显示不同的产品点击产品网址。我试图根据不同的html模板的id名称来命名它们,如下所示;1.html";并尝试添加include函数,以根据模板的id名称呈现不同的模板,如

{% include '{{product.id}}.html' %}

但它不起作用。有没有任何方法可以在include中添加这样的变量或以其他方式完成此任务?

您可以先执行{%if some_variable %},然后执行{%include 'xxx.html'%}