我正在学习Django,并且在一项任务上遇到了问题。 这不是一项完整的任务,仅是我自己了解该过程的过程(我尝试阅读文档,但这没有帮助)。 因此,我有一个地图(传单)和onMapClick函数。
# urls.py
urlpatterns = [path('map/', mapper)]
我创建了一个模型来保存模板中的数据
# models.py
from django.db import models
class MapHello(models.Model):
p = models.CharField(max_length=250)
def __str__(self):
return self.p
我想在点击地图后(使用onMapClick(e)之后)将一些数据从模板传递到views.py并将其添加到数据库中。
据我了解,我应该使用AJAX。目前,我有一些不起作用的东西。我尝试使用AJAX:
# part of map_in.html
function onMapClick(e) {
popup
.setLatLng(e.latlng)
.setContent("You clicked the map at " + e.latlng.toString())
.openOn(mymap);
var lat_lng = e.latlng
$.ajax({
url: "/map/",
type: "get",
data: {msg: "HELLO!!!!"},
success: function(data) {
alert(data.result);;
}});
所以我正在尝试发送do views.py消息“ HELLO !!!!”每次点击地图后。
# views.py
from django.shortcuts import render
from .models import MapHello
def mapper(request):
if request.method == "GET":
value = request.GET.get('msg')
if value:
MapHello.objects.create(p=value)
return render(request, 'map_in.html')
但是,正如我所看到的,映射器没有从模板中获取任何数据。那么问题出在AJAX中吗?还是我应该以某种方式使用两个视图(一个仅用于呈现页面,第二个用于从模板获取和处理数据)?
也许我所有的代码是错误的:)我只是在学习。
对不起,我英语不好。