首页 > 解决方案 > 是否可以使用“with”模板标签从 Django 模板中使用 JavaScript 生成的文本

问题描述

我正在使用以下W3schools JavaScript 代码在我的 Django 模板中生成纬度和经度结果:

我想知道是否可以使用{% with ... %}模板标签使用 JavaScript 向我的 django 变量吐出的结果

下面是我的 user.profile 模型

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)        
    age = models.DateField(blank=True, null=True)
    member_since = models.DateTimeField(auto_now_add=True)
    profile_image = models.ImageField(default='', blank=True, null=True)
    lat = models.FloatField(blank=True, null=True)
    lon = models.FloatField(blank=True, null=True)
    point = models.PointField(srid=4326, default='SRID=4326;POINT(0.0 0.0)')
    objects = models.GeoManager()

标签: javascriptdjangopython-3.xdjango-templatesgeodjango

解决方案


您需要创建一个函数,其中 AJAX 调用转到您的 URL 之一。
在 AJAX 调用中,您需要发送 lat 和 lon 值并将它们保存到数据库。
在文档/页面加载时调用此 AJAX 函数。

您可以使用 AJAX 进行 POST 或 GET 调用。

var element = $("#element-id")    

$.ajax({
url : $(element).attr("data-url"),
data : {
    "csrfmiddlewaretoken" : $(element).siblings("input[name='csrfmiddlewaretoken']" ).val(),
    "alt":lat,
    "lon": lon
},
method: "POST",
dataType : "json",
success : function (returned_data) {            
    // display data 
}});

如果您正在发送 GET 调用,请忽略 csrf 令牌。

其中元素是 HTML 中具有 data-url 属性的隐藏字段/链接/按钮。


推荐阅读