2017-09-02 15 views
0

に私は、フォームの自動補完を実装するために使用しているアプリ(ジャンゴ-Autocomplete_Light、DAL)で静的ファイルに夢中に問題を持っていない... https://github.com/yourlabs/django-autocomplete-light/issues/907ジャンゴ - テンプレートにロードするアプリケーションの静的ファイルは、別の

I私のホームページにDALフォームをロードすることができます。それはbase.htmlです。同一のDALフォームは同じテンプレートを拡張している別のテンプレートでは機能しません。base.html DAL JSファイルは他のテンプレートにロードされていません。

文字列{{ form.media }}は、DALのdocの必要に応じて、jqueryインポート後にbase.htmlにあります。

何が問題なのですか?

これは、他のテンプレートにロードされていないものです。

<link href="/static/autocomplete_light/vendor/select2/dist/css/select2.css" type="text/css" media="all" rel="stylesheet" /> 
<link href="/static/autocomplete_light/select2.css" type="text/css" media="all" rel="stylesheet" /> 
<script type="text/javascript" src="/static/autocomplete_light/jquery.init.js"></script> 
<script type="text/javascript" src="/static/autocomplete_light/autocomplete.init.js"></script> 
<script type="text/javascript" src="/static/autocomplete_light/vendor/select2/dist/js/select2.full.js"></script> 
<script type="text/javascript" src="/static/autocomplete_light/select2.js"></script> 

編集:これは私のbase.html

{% load static %} 
{% load i18n %} 
{% load helper_tags %} 

<!doctype html> 
<html lang="it"> 
<head> 
    <meta charset="utf-8"> 
    <meta http-equiv="x-ua-compatible" content="ie=edge"> 
    <title>MySoundList | {% block title %}Home Page{% endblock %}</title> 
    <meta name="description" content="MySoundList"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 

    <link rel="stylesheet" type="text/css" media="all" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"> 
    <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500" rel="stylesheet"> 
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"> 

    {% block specific_css %}{% endblock %} 


    {% get_current_language as LANGUAGE_CODE %} 
    {% get_available_languages as languages %} 

    <link rel="alternate" hreflang="x-default" href="{% change_lang %}"> 

    {% for lang_code, lang_name in languages %} 
     <link rel="alternate" hreflang="{{ lang_code }}" href="{% change_lang lang_code %}"> 
    {% endfor %} 

    <link rel="stylesheet" type="text/css" href="{% static 'custom.css' %}" /> 

</head> 
<body> 
<!--[if lt IE 8]> 
    <p class="browserupgrade"> 
     You are using an <strong>outdated</strong> browser. 
     Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience. 
    </p> 
<![endif]--> 

<div class="MainWrapper"> 
    {% block content %} {% endblock %} 
</div> 

<script 
     src="https://code.jquery.com/jquery-3.1.1.min.js" 
     integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" 
     crossorigin="anonymous"></script> 
<script 
     src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" 
     integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" 
     crossorigin="anonymous"></script> 

{{ form.media }} 

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.5.0/Chart.bundle.min.js"></script> 

{% block specificjs %}{% endblock %} 

<link rel="stylesheet" type="text/css" href="{% static 'custom.css' %}" /> 

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

</body> 
</html> 

であり、これはフォームがあるページです

動作していません:

{% extends 'base.html' %} 

{% load static %} 
{% load i18n %} 
{% load helper_tags %} 

{% block title %} 
    {{ djname }} 
{% endblock %} 

{% block content %} 

    <div> 
     {{ event_track_form }} 
    </div> 
{% endblock %} 
+0

'base.html'と' other_template.html'の両方を表示してもよろしいですか? –

+0

こんにちはnik_m、私は実際のコードで私のQを更新しました – davideghz

+0

うーん... 'other_template.html'の中で' form'をレンダリングしていないようです。あなたは 'base.html'をレンダリングするときにそれを行うのは間違いですが、' other_template.html'をレンダリングするときはしません。新しい 'view'が表示されたら' form'オブジェクトを毎回レンダリングする必要があります。 –

答えて

0

コメントで説明した解決策は、正しいformオブジェクトをテンプレートに渡すことです。ビューにform_whateverと定義されている場合は、テンプレートでform_whatever.mediaを使用する必要があります。

関連する問題