[英]load static file in a template that extends other template - Django javascript
我想在擴展我的 base_generic 模板的模板中加載一個 javascript 文件。 我正在使用通用 listView 來呈現模板。
由於我不能在“{% block %}”標簽內使用“{% url %}”模板標簽,我將鏈接硬編碼如下:
<script src="static/js/search.js">
不幸的是,該文件不起作用,我收到一條消息:“SyntaxError: expected expression, got '<'”
我想這是因為我的視圖試圖將模板呈現為 html(我說得對嗎?)——我的假設是基於這篇文章: SyntaxError: expected expression, got '<'
所以我的問題是:如何在擴展另一個模板的模板中加載靜態文件。
編輯:
這是我的模板:
{% 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 %}
您可以在block
中使用{% url "" %}
。 要使用static
,請確保在需要時在extends
模板標簽之后直接包含{% load static %}
。 那么你就可以:
<script src="{% static 'js/search.js' %}">
您不使用{% url %}
標簽來獲取靜態文件的路徑,只需將其寫在模板文件的頂部:
{% load staticfiles %}
之后,您可以通過以下結構訪問您的靜態文件:
<script src="{% static 'js/search.js' %}">
在文檔中閱讀更多內容。
如果你想擴展基本模板,你必須添加塊腳本並將其擴展到你的模板
基礎.html:
{% block scripts %}
{% endblock %}
索引.html:
{% block script %}
<script src="{% static 'js/search.js' %}">
{% endblock %}
希望這會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.