2016-09-22 1 views
2

私はthis siteにライブされているDjangoサイトで作業しています。 HTMLの不要な空白が原因で出力が不必要なスペースになっています。Djangoテンプレートタグスペースを作成する

たとえば、「01-1737、市民審査局、不完全な言語、サステイン」は、大部分のカンマの前に余分なスペースがあります。

同様の問題を抱えた他の投稿を見つけましたが、解決策はありませんでした。私は{%spaceless%}タグを試しましたが、うまくいかなかった。私のために働いたのは、すべてのテンプレートタグをforループの1行に置くことでしたが、私は本当にこれよりも読みやすい解決法を見つけたいと思います。ここで

は、Djangoのテンプレートのコードです:それは唯一間のHTMLタグが動作するため{% spaceless %}があなたのためにすべてのスペースを削除与えなかった

{% extends 'police_archive/base.html' %} 

{% block content %} 
    <h2> {{officer.first_name}} {{officer.last_name}}, badge #{{officer.badge}} </h2> 
    <p><strong>Department:</strong> {{officer.department}}</p> 
    <h2>Complaints</h2> 
    <ul> 
     {% for details in details_list %} 
      <li> 


       {% if details.incident.case_number %} 
        <a href='/police_archive/complaint/{{details.incident.case_number}}'> 
         {{details.incident.case_number}} 
        </a> 
       {% else %} 
       No Case Number Found 
       {% endif %} 


       {% if details.incident.office %} 
       , {{details.incident.get_office_display}} 
       {% else %} 
       , No office found 
       {% endif %} 

       {% if details.allegation %} 
       , {{details.allegation}} 
       {% endif %} 

       {% if details.finding %} 
       , {{details.finding}} 
       {% endif %} 

       {% if details.action %} 
       , {{details.action}} 
       {% endif %} 

      </li> 
     {% endfor %} 


{% endblock %} 

答えて

1

理由があります。空白が<li>タグ内に表示されています。

私はDjangoの標準的なテンプレートシステムのための良い解決策を見つけることができないようですが、探しているものがJinjaのように見えます。これは、末尾または先頭の空白取り除くためにダッシュを使用しています。代わりに、Djangoのデフォルトのテンプレートシステムの神社を使用するためには

{% for item in seq -%} 
    {{ item }} 
{%- endfor %} 

を、あなたはDjango's docsによって記載されているように、あなたのsettings.pyファイルを変更する必要があります:

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.jinja2.Jinja2.', 
     'DIRS': [], 
     'APP_DIRS': True, 
     'OPTIONS': { 
      # ... some options here ... 
     }, 
    }, 
] 
+0

アイデアをありがとう。私はこれを稼働させて少し動かしてから、あきらめた。その単一のファイルにのみ問題が発生しているので、私は醜いシングルラインソリューションを選択しました。 –

関連する問題