2016-08-23 3 views
1

Django-datatable-viewを使って編集可能なテーブルをレンダリングする方法がわかりません。私は正確に次のようなテーブルを作成したい:http://django-datatable-view.appspot.com/x-editable-columns/ from model Citydjango-datatable-viewでテーブルをレンダリングするには?

私はドキュメントとチュートリアルを読みましたが、テーブルの作成方法はまだ分かりません。

これは私がこれまで何をやったかである:

{% extends "base.html" %} 
{% block head %} 
    {% load static %}e 
    <link rel="stylesheet" href="https://cdn.datatables.net/1.10.12/css/dataTables.bootstrap.min.css"> 
    <script src="https://cdn.datatables.net/1.10.12/js/jquery.dataTables.min.js"></script> 
    <script src="https://cdn.datatables.net/1.10.12/js/dataTables.bootstrap.min.js"></script> 
    <script src="{% static "datatable/js/datatableview.min.js" %}"></script> 
    <script> 
     datatableview.auto_initialize = false; 
     $(function() { 
      var xeditable_options = {}; 
      datatableview.initialize($('.datatable'), { 
       fnRowCallback: datatableview.make_xeditable(xeditable_options), 
      }); 
     }) 
    </script> 
{% endblock %} 
{% block content %} 
    {{ datatable }} 
    {{ object_list }} 
{% endblock %} 

そして、私の見解は次のとおりです。

class ZeroConfigurationDatatableView(dtv_views.XEditableDatatableView): 
    model = dolava_models.City 

    datatable_options = { 
     'columns': [ 
      'id', 
      ("Name", 'name', dtv_helpers.make_xeditable), 
      ("Country", 'country', dtv_helpers.make_xeditable), 

     ] 
    } 

残念ながら、私のコードは、これをレンダリング:

enter image description here

+0

テーブルタグを定義していません。 –

+0

@UsmanMaqboolタグを定義する方法が分かっている場合は、回答を投稿することができます。私はタグで何を意味するのか分かりません。 –

答えて

0
{% block content %} 
    {% if instances %} 
     <table class='datatable'> 
      <tr> 
       <th>ID</th> 
       <th>Name</th> 
       <th>Country</th> 
      </tr> 
      {% for row in instances %} 
       <tr> 
        <th> {{ row.id }}</th> 
        <th> {{ row.name }}</th> 
        <th> {{ row.country }}</th> 
       </tr> 
      {% endfor %} 
     </table> 
    {% else %} 
     <p>No data available</p> 
    {% endif %} 
{% endblock %} 
+0

むしろ 'django-datatable-view'のテーブルをレンダリングするように頼んでいます – mehmet

+1

このコードを読んでいただきありがとうございます。 *なぜ*これが問題の良い解決策であるかを示すことによって[適切な説明は長期的価値を大幅に改善する](// meta.stackexchange.com/q/114762/350567)、将来的にはより有用になる他の同様の質問の読者。あなたの前提を含め、あなたの答えを[編集]して説明を加えてください。 – iBug

2
django-datatable-view/datatableview/tests/example_project/example_project/example_app 

はこれを行うには、プロジェクトのgithubのページでDocumentation and Live Demosに従いますが、あなたが開始する前にdjango==1.8django>=1.4を交換してください:0最初のステップとして、中に埋設されているサンプルプロジェクトを実行しよう。つまり、私の経験ではdjango1.9または1.10と互換性がありません。

これを実行すると、一連の作業例と、対応が容易なドキュメントが用意されています。あなたが渡したリンクは古いです。例(example_app/views.py)とドキュメントを参照してください。あなたはサンドボックスから抜け出す準備ができている

、このルートをたどる:

  1. スタート新しいvirtualenvの

  2. クローンこのブランチ:https://github.com/jangeador/django-datatable-view/(それはそれを作るいくつかのより多くのコミットを持っていますdjangoの最近のバージョンと互換性があります)、pipインストール(変更を予定している場合は-e editableオプションを使います)。

  3. あなたが実行するサンプルアプリケーションのDatatable object and Metaのこの例に従います。コードでは:あなたは(彼らはオプションである)必要がない場合は

    class MyDatatable(Datatable): 
        class Meta: 
         model = Entry 
         columns = ['id', 'headline', 'pub_date', 'n_comments', 'n_pingbacks'] 
         ordering = ['-id'] 
         page_length = 5 
         search_fields = ['blog__name'] 
         unsortable_columns = ['n_comments'] 
         hidden_columns = ['n_pingbacks'] 
         structure_template = 'datatableview/default_structure.html' 
    
    class ConfigureDatatableObjectDatatableView(DatatableView): 
        model = Entry 
        datatable_class = MyDatatable 
    

あなたはDatatableクラス内のすべての属性を削除することができます。

ドキュメントとは別に、DataTableViewクラスの次のメソッドをオーバーライドして機能させる必要がありました。

def get_template_names(self): 
    return "example_base.html" 

これが含まれている必要があり、あなたのテンプレートファイル、次のとおりです。ここで注目すべきである何

<script src="{% static 'path-to/datatables.min.js' %}" type="text/javascript"></script> 
<link href="{% static 'your-path-to/datatables.min.css' %}" rel="stylesheet"> 

<script type="text/javascript" src="{% static 'js/datatableview.js' %}"></script> 

{{ datatable }} 

<script> 
    // Page javascript 
    datatableview.auto_initialize = true; 
</script> 

はジャンゴ - データテーブルビューモジュール(および添付datatableview.auto_initialize = true;)からdatatableview.jsを含めることです。最初にdatatables.jsに慣れていれば、自分で設定しても構いませんが、django-datatable-viewも新しければ、これはおそらく最も簡単なルートです。

関連する問題