单击地图后将变量从模板传递到视图

2024-10-01 00:18:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我在学Django,有一项任务有问题。 这不是一个完整的任务,它只是让我了解过程(我试图阅读文档,但没有帮助)。 所以,我有一个地图(传单)和函数onmaclick

# 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

我想在单击map之后(使用onmaclick(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消息“你好!!!!”每次点击地图之后

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

但是,正如我所看到的,mapper并没有从模板中获取任何数据。所以问题出在AJAX上?或者我应该使用两个视图(一个用于呈现页面,另一个用于从模板获取和操作数据)

或许我所有的代码都错了:)我只是在学习

对不起,我的英语不好


Tags: 数据frompyimport模板mapdatavalue