我在Django CMS中有2个模型 - 一个Map(具有名称和图像属性)和一个Location,其中一个属性是Map。我希望,当用户更改Map时,执行AJAX请求以获取该项的地图详细信息,以便我可以将Map图像添加到页面以使用它进行进一步的jQuery处理。但我是Django的新手,我似乎无法弄明白。我找到的任何东西似乎都没有关系 - 因为它谈到了在前端表单上使用AJAX。
我准备好了我的jQuery文件,但我不知道如何为AJAX调用的URL以及在Django中如何/在何处设置端点。
答案 0 :(得分:1)
您的问题似乎与自定义Django管理员网址有关。 首先,更新MapAdmin以提供搜索位置的端点
from django.contrib import admin
from django.http import JsonResponse
class MapAdmin(admin.ModelAdmin):
def get_urls(self):
admin_view = self.admin_site.admin_view
info = self.model._meta.app_label, self.model._meta.model_name
urls = [
url(r'^search_location$', admin_view(self.search_location), name=("%s_%s_search_location" % (info))),
]
return urls + super(VideoAdmin, self).get_urls()
def search_location(self, request, *args, **kwargs):
map = request.GET.get('map')
# Do something with map param to get location.
# Set safe=False if location_data is an array.
return JsonResponse(["""..location_data"""], safe=False)
接下来,在模板文件中的某个位置,定义搜索位置端点的URL点。并使用该URL来获取位置数据 一旦地图改变了。
var searchLocationUrl = "{% url 'admin:appName_mapModel_search_location' %}";