Ajax dan peta Google tidak berfungsi di Django

Saya menggunakan Django-easy-maps untuk menampilkan peta di halaman saya dan saya memiliki beberapa link di sidebar dan ketika pengguna mengklik link itu saya ingin menyegarkan peta dengan alamat di link tersebut.

Templat Django saya dari donate.html adalah ini

{% 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="/id#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="/id#" name="Some name1">Some link1</a> </li>
                  <li><a class='link' href="/id#" name="Some name2">Some link2</a> </li>




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


</div>
{% endblock %}

dan kode tampilan saya ada di sini:

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))

dan donate_res.html hanyalah sebagian kecil yang menggantikan kode div #results.

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

Masalahnya adalah ketika saya mengklik link, data dikirim kembali ke halaman, saya tahu ini karena saya dapat melihat alamatnya tetapi petanya tidak ditampilkan. Melihat sekilas konsol Pengembang Web di firefox memberikan kesalahan ini.

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

Tolong beritahu saya apa yang saya lakukan salah atau solusi untuk menghapus kesalahan ini...saya baru mengenal Django.


person Dhiraj Thakur    schedule 15.07.2012    source sumber
comment
Apakah teks addr atau sebuah poin?   -  person Maqsood    schedule 17.07.2012
comment
@Maqsood : Alamatnya berupa teks.   -  person Dhiraj Thakur    schedule 17.07.2012


Jawaban (1)


Lihat pertanyaan ini. Itu harus menjawab mengapa itu tidak berhasil.

Juga, secara pribadi saya tidak setuju dengan cara Anda melakukan ini. Ini membuat ulang dan memuat ulang peta setiap kali Anda mengklik tautan, yang tidak hanya tidak efisien tetapi juga dalam jangka panjang Anda mungkin mengalami masalah karena dibatasi oleh berapa kali Anda dapat memuat peta dari Google.

Saya akan merekomendasikan Anda untuk membuat javascript tulis Anda sendiri untuk memuat peta dan alamat atau melihat kode yang dihasilkan Django-easy-maps dan melihat apakah daripada membuat ulang wadah dan mengunduh ulang javascript peta, Anda cukup mengatur tengah peta atau titik dimana penanda seharusnya berada.

Saya dapat membantu lebih banyak jika Anda dapat menempelkan kode yang dihasilkan Django-easy-maps di {% easy_map addr 725 400 using "easy_maps/map.html"%}

person Maqsood    schedule 16.07.2012
comment
Html pengganti melampirkan pendengar acara pada acara pemuatan google.maps.event.addDomListener(window, 'load', initialize_map_14); yang telah diaktifkan juga. Apakah Anda hanya mencoba membuat daftar tempat dan mengubah daftarnya? Berapa banyak lokasi yang Anda miliki? Akan lebih baik untuk menyimpan teks Lokasi, dan koordinat di DB, dapatkan balasan di JSON lalu gunakan setTitle(title:string) dan setPosition(latlng:LatLng) untuk memindahkan penanda dan mengubah judul. Ini juga akan menjadi JAUH lebih cepat. Saya sudah melakukan ini di Django. - person Maqsood; 20.07.2012
comment
Bisakah Anda membagikan kode itu...di mana Anda melakukan ini...jika Anda tidak keberatan. Terima kasih.. - person Dhiraj Thakur; 04.08.2012