0

私は、次のようなPythonスクリプト(view.py)からHTMLページに配列を取得しようとしています-

def archive(request):
    posts = BlogPost.objects.all()
    myVal = ["Dog Toys", "Dog Bedding", "Dog Feeding", "Health & Hygiene"]
    t = loader.get_template("archive.html")
    c = Context({'myposts' : simplejson.dumps(myVal)})
    return HttpResponse(c)

test.html の私の JavaScript は次のようになります -

<script>
    var results = '{{myposts}}';
    console.log(results);
</script>

ここでの問題は、配列が HTML ページに直接印刷されていることです。つまり、ページ ソースにはこれしかありません。

1 : {'myposts': '["Dog Toys", "Dog Bedding", "Dog Feeding", "Health & Hygiene"]'}

これを克服する方法があると確信していますが、その方法がわからないだけで、Python/Django と JavaScript を初めて使用しています。

助けてくれてありがとう

4

3 に答える 3

1

次に、ヘルペインの回答に追加できます。

var result = "{{myposts|join:'/'}}".split('/');

したがって、最初にpythonリストが文字列に結合され、次にjavascriptによって配列に分割されます

于 2012-08-21T11:12:08.970 に答える
1

やるだけ

from django.utils.safestring import mark_safe
c = Context({'myposts' : mark_safe(myVal))

そして、配列を取得するには引用符を外す必要があります。

var results = {{myposts}};
于 2012-08-21T11:01:39.553 に答える
1

交換

var results = '{{myposts}}';

var results = '{% for post in myposts %} {{ post }}, {% endfor %}';

html で JavaScript を生成します。リストをテンプレートに直接送信できます。

c = Context({'myposts' : myVal})
于 2012-08-21T11:05:36.150 に答える