【问题标题】:Models and Views for base.html pagebase.html 页面的模型和视图
【发布时间】:2017-10-28 09:50:00
【问题描述】:

views.py

def HomeView(请求):

    slider = SliderImage.objects.all()
    gallary = GallaryImage.objects.all()
    lastimage = gallary.latest('id')
    return render(request,'homepage/homepage.html', {'slider': slider, 
                  'gallary': gallary, 'lastimage': lastimage})

urls.py

urlpatterns = [

    url(r'^$', views.HomeView, name='HomeView'),

]

滑块在我的基本模板上。当我在其他页面(如 otherpage.html)上使用扩展 base.html 时,此滑块不起作用。因为它没有找到图像的来源。

【问题讨论】:

  • 如果您尝试关注您的问题,那么您的代码或您的描述会产生误导。当您想在同一页面上显示结果时,为什么要使用两个 html 页面?您是否使用另一个 html 模板来处理这两个视图?否则,如果您的代码很小,则从单个视图发送多个上下文。
  • 这个问题请再看一遍
  • 现在您已经编辑了可以回答的问题

标签: django python-3.x


【解决方案1】:

你需要做这样的事情 -

 urlpatterns = [

url(r'^$', views.HomeView, name='HomeView'),

url(r'^$', views.SliderView, name='SliderView'),

# may be you can add this into your view
url(r'^views/$', views.CommonView, name='CommonView'),
]

 def CommonView(request):

    slider = SliderImage.objects.all()
    gallary = GallaryImage.objects.all()
    lastimage = gallary.latest('id')
    return render(request,'homepage/common.html', {'slider': slider ,'gallary': gallary , 'lastimage': lastimage})

common.html中添加两个html sn-ps,一个包含'homepage.html',另一个包含'base.html'

PS:你也可以在你的 common.html 中这样做

 {% extends "homepage.html" %}

 {% extends "base.html" %}

这将扩展您的模板并放置模板参数

【讨论】:

  • 这并不能解决他希望在单页中同时查看的问题。这是关于在模板中使用 url 查找
  • 其实我解释的不好。我使用这个 common.html,但是当我在这个基础上使用不同的应用程序时,它找不到slider.image。
  • 这是因为它们可能来自不同的数据库还是来自不同的应用程序?检查 settings.py 一次,如果没有则包含所有应用程序
  • 是的,它们来自不同的应用程序,但相同的数据库和不同的表。请看我的编辑问题
  • 看起来您的图像文件的来源与您的应用程序路径之一相关,这可能是滑块无法找到路径的原因。再次检查您的路径,如果您发现此评论有用,请将其标记为有用。
【解决方案2】:

在单个函数中查询数据库中的两个对象并将它们传递给模板。

return render(request,'homepage/homepage.html', {'gallary': gallary, 'lastimage': lastimage, 'slider': slider})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-03
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 2012-07-01
    相关资源
    最近更新 更多