13

私のViews.pyファイルは以下のようになります

  def homepage(request):
      template = 'homepage.html'
      list_display_template = 'list.html'
      list = model.objects.all()

      return render_to_response(template,
           {'list_display_template': list_display_template,
            'list' : list,},
            context_instance=RequestContext(request))

そして、私のhomepage.htmlは以下のようになります:-

  {% extends "base.html" %}

  {% block main_content %}
      {% include list_display_template %}
  {% endblock %}

そして私のlist_display_template(list.html)には次の情報があります

  < div class= "span10">
     {% for item in list %}
         <p> {{ item }}</p>
      {% endfor %}
  </div>

上記は開発では正常に機能しますが、本番環境では include タグが機能せず、要素を検査すると、list.html のアイテムが表示されません。誰かがこれを手伝ってくれませんか。

編集: - 私のフォルダ構造は以下の通りです

project_name/
    project_name/
         settings.py
    static/
       css/
       images/
    templates/
      homepage.html
      list.html
      base.html

ありがとう

4

6 に答える 6

4

私はちょうど同様の問題を抱えていました。親ページ (base.html) に直接含めたい html (つまり、navigation.html) を一時的にコピーして貼り付けることで、診断することができました。含まれているhtmlにエラーがあった場合、読み込まれずエラーが出ないだけのようです。

Navigation.html のコードを base.html に貼り付けたところ、500 エラーが発生しました。

于 2016-03-15T12:25:59.710 に答える
0

template tagsloadおよびオプションを台無しにしたくない場合はinclude、これを行う別の方法があります。

テンプレートをパラメーターで明示的にレンダリングし、文字列として保存してから、コンテキストとしてメイン テンプレートにレンダリングします。

from django.template.loader import render_to_string
    def get_context_data(self, **kwargs):
        ctx['loader'] = render_to_string('common/loader.html', {'loader': randint(0, 15)})
        return ctx
于 2021-11-10T14:43:24.120 に答える