0

django-easy-mapsを使用して自分のページに地図を表示していますが、サイドバーにいくつかのリンクがあり、ユーザーがそのリンクをクリックすると、リンク内のアドレスで地図を更新したいと思います。

donate.htmlの私のdjangoテンプレートはこれです

{% block optionalcode %}
<script>
$(document).ready(function() {
$('.link').click(function() {
var n = $(this).attr("name");
n=n.replace(/\s/g,'+');
$('#results').html('&nbsp;').load('/donate/?n=' + n);
});
});
</script>


{% endblock %}

{% block contenttitle %}{% endblock %}

{% block content %}     
<div class="container-fluid">
<div class="row-fluid">
<div class="span8">


<div class="hero-unit" style="padding:10px 10px 10px 10px">

<div id="results">
<b> <pre class="prettyprint
linenums"> {{addr}} </pre> </b>
{% load easy_maps_tags %}
{% easy_map addr 725 400 %}     
</div>

</div>
</div>





{% endblock %} 

{% block sidebar %} 
<div class="span4">
    <div class="hero-unit" style="padding:10px 10px 10px 10px">

        <div class="accordion" id="accordion2">

       <div class="accordion-group">
              <div class="accordion-heading">
                <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseOne">
                  North Delhi
                </a>
              </div>
              <div style="height: 0px;" id="collapseOne" class="accordion-body collapse">
                <div class="accordion-inner">
                  <ol>
                  <li><a class='link' href="#" name="Some name1">Some link1</a> </li>
                  <li><a class='link' href="#" name="Some name2">Some link2</a> </li>




                  </ol>
                </div>
              </div>
            </div>


</div>
{% endblock %}

そして私のビューコードはここにあります:

from django.shortcuts import render_to_response
from django.template import RequestContext
from django.http import HttpResponse

def ajax_req(request):
    if request.is_ajax():
        n = request.GET.get('n')
        return render_to_response('donate_res.html', {'addr': n},context_instance=RequestContext(request))


    else :
        return render_to_response('donate.html', {'addr': "Some Address"},context_instance=RequestContext(request))

また、donate_res.htmlは、#resultsdivコードを置き換える小さな部分です。

<b> <pre class="prettyprint linenums"> {{addr}} </pre> </b> 
  {% load easy_maps_tags %} 
  {% easy_map addr 725 400 using "easy_maps/map.html"%}

問題は、リンクをクリックすると、データがページに返送されることです。アドレスは表示されますが、マップは表示されないため、これを知っています。FirefoxのWeb Developerコンソールをざっと見ると、このエラーが発生します。

A call to document.write() from an asynchronously-loaded external script was ignored. @ http://127.0.0.1:8000/donate/

何が間違っているのか、またはこのエラーを削除するための回避策を教えてください...私はDjangoを初めて使用します。

4

1 に答える 1

0

この質問を見てください。なぜ機能しないのかを回答する必要があります。

また、個人的には、あなたがこれを行っている方法に同意しません。リンクをクリックするたびにマップを再作成してリロードするため、非効率的であるだけでなく、長期的には、Google からマップをロードできる最大回数によって制限されるという問題が発生する可能性があります.

独自の JavaScript を作成してマップと住所をロードするか、django-easy-maps が生成するコードを見て、コンテナーを再作成してマップ JavaScript を再ダウンロードするのではなく、設定できるかどうかを確認することをお勧めします。マップの中心またはマーカーがあるべきポイント。

django-easy-maps が生成するコードを貼り付けていただければ、さらに役に立ちます{% easy_map addr 725 400 using "easy_maps/map.html"%}

于 2012-07-16T22:34:39.117 に答える