【问题标题】:django include template into other templatesdjango 将模板包含到其他模板中
【发布时间】:2013-12-16 03:32:36
【问题描述】:

我无法在我的 index.html 中正确包含“mainslider.html”作为 {% 包括 "pages/mainslider.html" %}

我的索引页浏览量

from django.shortcuts import render_to_response
def index(request):
    return render_to_response('index.html')

我可以在 http://127.0.0.1:8000/slider/ 看到我的滑块,但没有看到 http://127.0.0.1:8000/

这是滑块代码: models.py

from django.db import models
from ckeditor.fields import RichTextField
from easy_thumbnails.fields import ThumbnailerImageField

class Portfolio(models.Model):
    title = models.CharField(max_length = 200)
    description = models.TextField(max_length = 500)
    meta_desc = models.CharField(max_length=200)
    meta_key = models.CharField(max_length=200)
    device = RichTextField()
    image = ThumbnailerImageField( upload_to = 'media')

    def __unicode__(self):
        return self.title

    def get_absolute_url(self):
        return "/works/%i/" % self.id

class Slider(models.Model):
    title = models.CharField( max_length = 500)
    image = ThumbnailerImageField( upload_to = 'media')
    whichslide = models.ForeignKey('Portfolio')

    def __unicode__(self):
        return self.title

views.py

class SliderListView(ListView):
    model = Slider
    context_object_name = 'sliders'
    template_name = 'pages/mainslider.html'

def get_context_data(self, **kwargs):
    context = super(SliderListView, self).get_context_data(**kwargs)
    context['portfolio'] = Portfolio.objects.all()
    return context

ma​​inslider.html

<ul class="rslides" id="slider">
{% for slider in sliders %}
  <li>
    <img src="{{ slider.image.mainslider.url }}" alt="{{ slider.whichslide.title }}">
    <p class="caption">{{ slider.title }}</p>
  </li>
{% endfor %}
</ul>

还有一些urls.py

url(r'^slider/$', SliderListView.as_view(), name="slider_list"),

【问题讨论】:

  • 包含模板是不够的。如果您希望所有内容都在 index.html 上可见,您还需要在索引视图的上下文中将数据传递给模板。

标签: django django-templates django-views


【解决方案1】:

就像@Simein Visser 所说,您必须在索引视图中包含数据。

可以使用一个简单的解决方案来代替您的 index 函数:

class Index(SliderListView):
    # you're reusing the context data included by SliderListView view
    template_name = 'index.html'

【讨论】:

  • 是的,我做到了!谢谢你们!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-21
  • 2018-02-02
  • 2016-12-28
  • 1970-01-01
  • 1970-01-01
  • 2015-10-25
  • 2014-05-13
相关资源
最近更新 更多