这一定很简单,但我根本无法绕过它。 我有以下代码:
models.py
class Template(models.Model):
...
display_type = models.CharField(max_length="20", choices=DISPLAYTYPE)
...
class Display(models.Model):
...
template = models.ForeignKey(Template)
views.py
class DisplayDetail(DetailView):
model = Display
template_name = 'kiosk/display_detail.html'
...
class HDMIDisplay(DisplayDetail):
def get_object(self):
object = super(DisplayDetail, self).get_object()
object['template'] = object.template.display_type
return object
if template == "static":
template_name = 'kiosk/HDMI-static.html'
elif template == "list":
template_name = 'kiosk/HDMI-list.html'
else:
template_name = 'kiosk/HDMI-slideshow.html'
现在,我知道这不会像现在这样编写,但我需要的是如何从模型中获取模板值到视图中,以便能够建立我的条件。
答案 0 :(得分:3)
您的视图类应如下所示:
class HDMIDisplay(DisplayDetail):
def get_template_names(self):
return [self.object.template.display_type]
您还需要在显示选项中指定模板的完整路径(在models.py中),即:
DISPLAYTYPE = (
('kiosk/static.html', 'Static'),
('kiosk/list.html', 'List'),
('kiosk/default.html', 'Default'),
我测试了它,所以这足以解决你的问题