0

我有一个非常适合ListViewDjango 的视图。像这样:

url(r'^$',
    ListView.as_view(
        queryset=Poll.objects.order_by('-pub_date')[:5],
        context_object_name='latest_poll_list',
        template_name='polls/views/index.html')),

但是,我在视图页面上也想显示来自另一个模型的内容。该模型仅包含一行数据。它是站点范围的,包含页脚文本页面标题等。

什么是最好的解决方案?理想情况下,我想保留通用模型方法。

4

1 回答 1

0

有几种方法可以解决这个问题。观点绝对不是正确的地方。

模板标签 使用模板标签的一种方法是作为迷你视图。无论您是从另一个模型请求数据,还是呈现包含的模板。

因为您也可以将参数传递到模板标签中,所以它们可以由上下文自定义。

上下文处理器 对于更简单的信息,上下文处理器运行良好。我不会对数据太复杂,因为它是全球性的,可以减慢每个请求。

另一方面,我也会质疑你的单排模型。我的猜测是这是为了允许用户编辑。如果用户访问它,请期待所有可能的方式来搞砸它。例如,添加更多行。有几个 Django 应用程序可用于管理用户可编辑的设置,它们可能很有用。如果数据不会经常更改,我会将其设置为实际设置,或者将其放入模板片段并 {% include %} 它。

于 2012-09-18T00:48:38.167 回答