如何在同一页面上放置多个模型?

时间:2012-10-22 20:07:53

标签: django django-models django-templates

  

我正在做一个html和base的网站(所有页面扩展)我想要的   放一个社交网络图标的会话。本次会议以此为基础   html应该显示在网站的所有页面上。

     

我不想要   把这个会话放在一个静态的html中,我想在django中使用   楷模。这已经完成了。

问题:我是否必须在每个视图上放置社交网络图标会话,还是可以创建单独的视图,而所有其他人都可以扩展此视图? 我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

尝试使用inclusion tag。您可以创建一个函数来完成创建会话的所有工作,然后将其与特定的HTML块相关联。

<强> templatetags / session.py

@register.inclusion_tag('includes/session_box.html')
def output_session_box(...):
    ...
    return { .. }

关联的模板文件包含/ session_box.html ,可以像任何模板一样使用HTML。

然后您的 base.html 会:

{% load session %}
{%  output_session_box ... %}

答案 1 :(得分:0)

使用RequestContextcontext_processor使用RequestContext将模板变量注入每个视图。

它就像一个python函数一样简单,接受request作为arg,并返回一个字典传递给你的模板。

https://docs.djangoproject.com/en/dev/ref/templates/api/#django.template.RequestContext

def my_processor(request):
    return {'foo': 'bar'}

TEMPLATE_CONTEXT_PROCESSORS = (
     # add path to your context processor here.
)

我通常有一个基于每个项目的处理器基础...这正是django如何为每个模板添加{{ user }}{{ STATIC_URL }}

相关问题