在Django的DetailView中,可以根据条件来呈现不同的模板。下面是一种实现方式:
from django.views.generic import DetailView
from .models import YourModel
class YourDetailView(DetailView):
model = YourModel
template_name = 'your_template.html'
def get_template_names(self):
if self.object.condition:
return ['template1.html']
else:
return ['template2.html']
在上述代码中,根据模型实例的某个条件(例如condition字段)来判断应该使用哪个模板进行渲染。如果满足条件,返回template1.html模板,否则返回template2.html模板。
from .views import YourDetailView
urlpatterns = [
path('your-detail/<int:pk>/', YourDetailView.as_view(), name='your-detail'),
]
在上述代码中,将URL路径'your-detail/<int:pk>/'与YourDetailView视图类进行关联,并指定name属性。
这样,当访问'your-detail/<int:pk>/'路径时,Django将根据条件选择合适的模板进行渲染。
请注意,上述代码中的"YourModel"、"your_template.html"、"template1.html"和"template2.html"等名称需要根据实际情况进行替换。
推荐的腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云