2017-07-28 19 views
0

Djangoプロジェクトで作業する。私は、作成したモデルクラスのリストである "todas_academias"という変数を持つindex.htmlファイルを持っています。 ディレクトリ:FKSC/ac_filiados /テンプレート/ ac_filiados/index.htmlをDjangoプロジェクトでHTMLファイルに「python関数」を入れる方法

{% for academia in ordenar(todas_academias) %} 
       <td>{{ academia.nome_academia }}</td> 
       <td>{{ academia.estado }}</td> 
       <td>{{ academia.cidade }}</td> 
       <td>{{ academia.professor }}</td> 
       <td>{{ academia.num_alvara }}</td> 
{% endfor %} 

そして、私は別のディレクトリにあるPythonのファイルに "ordenar" と呼ばれる関数を作成しました。 ディレクトリ:FKSC/ac_filiados/functions.py

お客様この機能の機能を理解するにはを理解してください。

def ordenar(todas_academias): 
    lista = [] 
    for academia in todas_academias: 
     lista = lista + [academia.num_alvara] 
    nova_list = lista.sort() 
    nova_lista_academias = [] 
    for reg in nova_list: 
     for academia in todas_academias: 
      if reg == academia.num_alvara: 
       nova_lista_academias = nova_lista_academias + [academia] 
    return nova_lista_academias 

は今、私はちょうど私が使用しようとしたとして、index.htmlファイルに「ordenar()」関数を使用したいが、それはうまくいきませんでした。 1) "ordenar"関数を使用する前にインポートする必要がありますか?もしそうなら、それをどのようにインポートするのですか? 2) "ordenar"関数をviews.pyに配置する必要がありますか? 3)または、HTMLファイルでこの種の関数を使用する特定の方法はありますか?

答えて

0

あなたはテンプレートから関数を呼び出すべきではありません。私はそうのような表示にordenarがコンテキスト辞書を経由して返すものを渡します。

{% for academia in ordenar %} 
    <td>{{ academia.nome_academia }}</td> 
    <td>{{ academia.estado }}</td> 
    <td>{{ academia.cidade }}</td> 
    <td>{{ academia.professor }}</td> 
    <td>{{ academia.num_alvara }}</td> 
{% endfor %} 

views.py

def ordenar(todas_academias): 
    lista = [] 
    for academia in todas_academias: 
     lista = lista + [academia.num_alvara] 
    nova_list = lista.sort() 
    nova_lista_academias = [] 
    for reg in nova_list: 
     for academia in todas_academias: 
      if reg == academia.num_alvara: 
       nova_lista_academias = nova_lista_academias + [academia] 
    return nova_lista_academias 

def some_view(request): 
    ... 
    YOUR OTHER CODE 
    ... 
    return render(request, 'yourtemplate.html', {ordenar: 'ordenar'}) 

は、その後、あなたのテンプレートにあなたは多かれ少なかれ同じコードを続けるだろう

1

あなたはあなたのビューのコンテキスト内で、あなたの関数の結果を追加したり、Djangoのテンプレートタグを含めるタグdocと例を作成することができますcustom-inclusion-tags

関連する問題