2017-07-18 12 views
0

base_genericテンプレートを拡張するテンプレートにjavascriptファイルをロードしたいとします。私はテンプレートをレンダリングするために汎用のlistViewを使用しています。他のテンプレートを拡張するテンプレートに静的ファイルを読み込む - Django javascript

私は使用できないので、次のように "{%のURL%は}" "{%ブロック%}" の内部tamplateタグは、タグがIリンクをハードコード:

<script src="static/js/search.js"> 

を残念なことにファイルが行います"SyntaxError:期待される式は、 '<'"

私のビューはhtmlとしてテンプレートをレンダリングしようとしているからでしょうか? - 私の前提は、この投稿:SyntaxError: expected expression, got '<'

私の質問は:どのように別のテンプレートを拡張するテンプレート内の静的なファイルを読み込むことができます。

EDIT:

ここでは私のテンプレートです:

{% extends "base_generic.html" %} 


    {% block content %} 


    {% if search_flag %} 
    SEARCHFLAG ON 
    {% else %} 

    <h2 class="myh"> Książki: </h2> 

    {% if book_list %} 
    <script> 
    var lista=[]; 
    {% for book in book_list %} 
    var title="{{book.title}}"; 
    var authors=[]; 
    {% for author in book.author.all %}; 

    var aut="{{author.last_name}}"; 


    authors.push(aut); 

    {% endfor %} 

    var authorsStr=authors.join('; '); 

    var book=[title, authorsStr] 
    lista.push(book); 

    {% endfor %} 
    console.log("created list of books and authors - name: lista") 
    </script> 

    {% else %} 

    <p>W katalogu nie ma książek</p> 
    {% endif %} 
    {% endif %} 


    <script src="static/js/search.js"> 
    </script> 


    {% endblock %} 
+0

テンプレートのコードを投稿できますか?上から下へ – Exprator

答えて

1

あなたは自分のテンプレートファイルの上にこれを書き、あなたにSTATISファイルのパスを取得するには{% url %}タグを使用していない:

{% load staticfiles %} 

そして、それyuoを得ることができた後に構造をfolowingによってあなたの静的ファイルへのアクセス:

<script src="{% static 'js/search.js' %}"> 

documentationでもっとお読みください。

あなたがしたい場合は、スクリプトのブロックを追加し、別のテンプレートに

base.htmlそれを拡張する必要がベーステンプレート拡張:

{% block scripts %} 
{% endblock %} 

はindex.htmlを:

{% block script %} 
    <script src="{% static 'js/search.js' %}"> 
{% endblock %} 

をこれが役立つことを願っています。

+0

ブロック名に 'scripts'がありません=) –

+0

はい - 間違ったテンプレートタグを使用しました。私はそれを答えとしてマークします、ありがとうございます。しかし、私はまだスクリプトのハードコードされたバージョンで何が問題だったのか分かりません。 – McCzajnik

1

あなたはblock{% url "" %}を使用することができます。 staticを使用するには、必要なときにextendsテンプレートタグの直後に{% load static %}を必ず含めてください。そして、次のことができます。

<script src="{% static 'js/search.js' %}"> 
関連する問題