2017-04-20 14 views
0

私はいくつかのモデルをブートストラップツリーに表示しました。今私はそのツリーの特定のノードの詳細をブートストラップリストに表示する必要があります。私はこのためにAJAXビューを使用する必要があることを知っています。しかし、私は明確な考えを得ていない。私を助けてください。続きDjango Bootstrapリスト

def get_context_data(self, **kwargs): 
    context = dict() 
    organization = Organization.objects.all() 
    orglocations = Orglocations.objects.all() 
    locationprocessarea = Locationprocessarea.objects.all() 
    processareaasset = Processareaasset.objects.all() 
    processtaglink = Processareaassettaglink.objects.all() 
    context["TreeStructure"] = [ 
     { 
      'text': organizations.name, 
      'nodes': [ 
       { 
        'text': orglocationss.name, 
        'nodes': [ 
         { 
          'text': processarea.name, 
          'nodes': [ 
           { 
            'text': processasset.name, 
            'nodes':[{ 
             'text':processareafilter.name, 
             'nodes':[{ 
              'text':taglink.name 
             }for taglink in processtaglink.filter(areaassetid=processareafilter.id)] 
            }for processareafilter in processareaasset.filter(parentassetid=processasset.id)] 
           } for processasset in processareaasset.filter(processareaid=processarea.id).filter(parentassetid__isnull=True)] 
         } for processarea in locationprocessarea.filter(locationid=orglocationss.id)] 
       } for orglocationss in orglocations.filter(organizationid_id=organizations.id)] 
     } for organizations in organization.filter(id=1)] 
    return { 

     "tree_view": context 
    } 

私の見解であると私は私のテンプレートで使用しているスクリプトは、

<script> 
var test_tree = {{ tree_view.TreeStructure | safe }}; 
$('#tree').treeview({data: test_tree}); 
</script> 

である私を助けてください..!ありがとうございます。

+0

「var test_tree = "{{tree_view.TreeStructure | safe}}"; – itzMEonTV

+0

@itzmeontvそのエラーが表示されます – priya

答えて

0

変数はPython辞書のリストです。デフォルトの__str__メソッドは、JavaScriptを理解するために出力する必要がある有効なJSONを生成しません。コンソールを開いた状態でブラウザにページをロードしてみてください。何らかのエラーが表示されることがあります。

>>> import json 
>>> json.loads(str([{'a': 1}, {'b': 2}])) 
    Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib/python2.7/json/__init__.py", line 338, in loads 
    return _default_decoder.decode(s) 
    File "/usr/lib/python2.7/json/decoder.py", line 366, in decode 
    obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 
    File "/usr/lib/python2.7/json/decoder.py", line 382, in raw_decode 
    obj, end = self.scan_once(s, idx) 
ValueError: Expecting property name: line 1 column 3 (char 2) 

だから、テンプレートでそれをプリントアウトする前に、データのjson.dumps()を実行します。別の方法、それを証明するために

safeフィルタの使用は正しいです。

+0

コメントありがとうございます..私のコードのための完璧な出力を得ています。今私の問題は、そのノードをクリックしている間に特定のノードの詳細を含むブートストラップリストを表示しなければならないことです。 – priya

+0

まったく別の問題のように聞こえるかもしれません。 – Anonymous

+0

私の質問は理解できますか? – priya

関連する問題