我正在扩展页眉和页脚,但是当我在页脚中传递数据时,它仅在主页上可见,在其他页面上不可见

Posted

技术标签:

【中文标题】我正在扩展页眉和页脚,但是当我在页脚中传递数据时,它仅在主页上可见,在其他页面上不可见【英文标题】:I am extending my header and footer but when I pass data in footer it is visible only at home page not on other pages 【发布时间】:2021-03-12 01:33:09 【问题描述】:

我正在扩展我的页眉和页脚,但是当我在页脚中传递数据时,它仅在主页上可见,而在其他页面上不可见。 我知道我必须在每一页上传递这些数据,但我正在寻找一个简单的解决方案 示例:

from django.shortcuts import render,redirect
from footer.models import Footer

   def home(request):
       contact_info = Footer.objects.all()
       return render(request,'frontend/index.html', 'contact_info':contact_info)

Index.html

<div class="col-md-3 col-md-push-1">
                <div class="gtco-widget">
                    <h3>Get In Touch</h3>
                    <ul class="gtco-quick-contact">

                        % if contact_info %
                        % for i in contact_info %
                        <li><a href="tel: i.phone "><i class="icon-phone"></i> i.phone</a></li>

                        
                        <li><a href="mailto: i.email "><i class="icon-mail2"></i> i.email </a></li>


                        <li><a href="http://maps.google.com/?q= i.location "><i class="ti-location-pin"></i> i.location </a></li>
                        % endfor %

                        % endif %

                    </ul>
                </div>
            </div>

在联系页面:

在索引页面:

【问题讨论】:

【参考方案1】:

如果您需要每个页面中的数据,那么您可以使用上下文处理器。

在你的应用文件夹中,创建 context_processor.py

context_processor.py:

def context_processor(request):
    context = 
    context['data'] = 'Some data'
    return context    

settings.py:

TEMPLATES = [
    
        ...,
        'OPTIONS': 
            ...,
            'app_name.context_processor.context_processor'
        
    
]

在您的模板中。在你的情况下,你可以在你的 footer.html 中使用

data

仅供参考:您也不需要使用自己的视图。

【讨论】:

Hemant Yadav(印度德里):是的,我用过这个,对我来说效果很好。因为我认为这不仅适用于页眉或页脚,即使您可以在这里传递模型,您也可以在项目模板中的任何位置调用。 是的,取决于要求。【参考方案2】:

context_processor.py

from designzoned.models import ServicesModel
def context_processor(request):
   context = 
   context['service_list'] = ServicesModel.objects.all()
   return context

settings.py

TEMPLATES = [

    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [],
    'APP_DIRS': True,
    'OPTIONS': 
        'context_processors': [
            'django.template.context_processors.debug',
            'django.contrib.auth.context_processors.auth',
            'django.contrib.messages.context_processors.messages',
            'django.template.context_processors.request',
            # In below line you have to write like this
            'designzoned.context_processor.context_processor',
        ],
    ,
,

]

header.html

<ul class="dropdown-menu">
   % for service in service_list %
      <li><a href="% url 'services_detail' service.slug %"> 
       service.name </a></li>
   % endfor %
</ul>

【讨论】:

以上是关于我正在扩展页眉和页脚,但是当我在页脚中传递数据时,它仅在主页上可见,在其他页面上不可见的主要内容,如果未能解决你的问题,请参考以下文章

C#/VB.NET 如何在 Word 文档中添加页眉和页脚

如何在Excel中设置页眉和页脚

网页设计主页不显示图片

在 C# 中从 .docx 文件的页眉和页脚获取图像

UITableView 页眉和页脚高度与 Storyboard 布局不对应

如何在角度材料中实现 Sidenav、页眉和页脚?