Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用地理定位的Django标记_Python_Django - Fatal编程技术网

Python 使用地理定位的Django标记

Python 使用地理定位的Django标记,python,django,Python,Django,我使用django geoposition来管理我的地理数据。 在my home.html中: <!-- Add Google Maps --> <script> function myMap() { {% for posts in post_list %} myCenter=new google.maps.LatLng(34.8402781,135.592376); var myLocation=new google.maps.LatLng({{posts.

我使用django geoposition来管理我的地理数据。 在my home.html中:

<!-- Add Google Maps -->
<script>
function myMap() {
  {% for posts in post_list %}
  myCenter=new google.maps.LatLng(34.8402781,135.592376);
  var myLocation=new google.maps.LatLng({{posts.position.latitude}},{{posts.position.longitude}});
  var mapOptions= {
    center:myCenter,
    zoom:7, scrollwheel: true, draggable: true,
    mapTypeId:google.maps.MapTypeId.HYBRID
  };
  var map=new google.maps.Map(document.getElementById("googleMap"),mapOptions);
  var marker = new google.maps.Marker({
    position: myLocation,
    title:'{{ posts.title }}',
    draggable: false,

  });
  marker.setMap(map);

  {%endfor%}
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCB1CA2DoITfJoFY4HWTLTxH4Avx7QWWqA&callback=myMap"></script>
views.py:

from django.shortcuts import render
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from .models import Post

def home(request):
    posts = Post.objects.all()
    paginator = Paginator(posts, 6) #每页显示十个
    page = request.GET.get('page')
    try :
        post_list = paginator.page(page)
    except PageNotAnInteger :
        post_list = paginator.page(1)
    except EmptyPage :
        post_list = paginator.paginator(paginator.num_pages)
    return render(request, 'attractions/home.html', {'post_list': post_list,})

def post_detail(request, pk):
    post = Post.objects.get(pk=pk)
    return render(request, 'attractions/post.html', {
    'post': post,
})
吸引力\url.py

from django.conf.urls import url
from . import views
app_name = 'attractions'
urlpatterns = [
    url(r'^$',views.home, name = 'home'),
    url(r'^post/(?P<pk>\d+)/$', views.post_detail, name='post_detail')
]
admin.py:

from django.contrib import admin
from .models import Post
from django_markdown.admin import MarkdownModelAdmin
from django_markdown.widgets import AdminMarkdownWidget
from django.db.models import TextField

class PostAdmin(MarkdownModelAdmin):
    list_display = ('title','position',) #顯示欄
    search_fields = ('title',) #搜索欄
    ordering = ('created_at',) #減號表示降序
    formfield_overrides = {TextField: {'widget': AdminMarkdownWidget}}

admin.site.register(Post,PostAdmin)

我看到以下错误:
-Javascript:必须对标记进行循环,而不是对整个地图渲染Javascript代码进行循环。

我建议您使用基于类的视图(在本例中为ListView)。

谢谢您。因为我不熟悉python和django,我对基于类的视图几乎一无所知。我以后会设法弄清楚的。我试过你的方法,但不知道我是否按照你建议的方法做了。我将循环如下:{%for post_list%}var myLocation=new google.maps.LatLng({{posts.position.latitude},{{posts.position.longitude});{%endfor%}但是,地图仍然显示一个位置,它是post_列表中的第一个位置。你有什么进一步的建议吗?我想你的问题在于Javascript。将此帖子选中以添加多个标记。您必须使用“for”生成“var位置”。视图中的一切都正常。在链接之后,我做了如下更改:var marker=[];对于(var i=0;i<100;i++){var post={{post.position}[i];var latLng=new google.maps.latLng(post[i]。纬度,post[i]。经度);var marker=new google.maps.marker(latLng);markers.push(marker);}var markerCluster=new MarkerClusterer(map,markers);但地图上仍然没有任何标记。
from django.conf.urls import url,include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^',include('attractions.urls')),
    url(r'^markdown/', include( 'django_markdown.urls')),
]
from django.contrib import admin
from .models import Post
from django_markdown.admin import MarkdownModelAdmin
from django_markdown.widgets import AdminMarkdownWidget
from django.db.models import TextField

class PostAdmin(MarkdownModelAdmin):
    list_display = ('title','position',) #顯示欄
    search_fields = ('title',) #搜索欄
    ordering = ('created_at',) #減號表示降序
    formfield_overrides = {TextField: {'widget': AdminMarkdownWidget}}

admin.site.register(Post,PostAdmin)