django-rest-framework:每个ViewSet可以拥有多个模板吗?

问题描述 投票:0回答:1

我已经为我的模型创建了序列化器和ViewSet,并为列表视图添加了模板。要查看网页(模板),排序渲染类必须正确,并且需要将TemplateHTMLRenderer添加到渲染器列表中。

这现在导致要浏览至诸如[]之类的特定记录的问题>

/mymodel/5

在浏览器中,我也得到了列表视图。

目标是拥有1个同时用于列表视图和详细信息视图的api(json)或网页的URL。(/ mymodel =列表,/ mymodel / 5 =详细信息)

问题是:如何基于一个ViewSet具有多个模板(列表/详细信息?)>

我已经为我的模型创建了序列化器和ViewSet,并为列表视图添加了模板。要查看网页(模板),排序渲染类必须正确,并且需要添加...

django-rest-framework django-templates django-rest-viewsets
1个回答
0
投票

解决方案是重写get_template_names方法并根据所执行的操作返回模板。

def get_template_names(self):
    if self.action == 'list':            
        return ['list.html']
    elif self.action == 'retrieve':            
        return ['details.html']
© www.soinside.com 2019 - 2024. All rights reserved.