【问题标题】:Is it possible to use JavaScript generated text from Django templates using the"with" templatetag是否可以使用“with”模板标签从 Django 模板中使用 JavaScript 生成的文本
【发布时间】:2019-01-28 04:49:18
【问题描述】:

我正在使用以下W3schools JavaScript code 在我的 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()

【问题讨论】:

  • 您必须使用表单或 ajax 调用发布它。
  • @NourChawich 添加表单的问题是用户必须添加自己的lats lon 详细信息并单击提交。那不会太实用。我将如何使用 Ajax 调用
  • 它可能是一个隐藏的表单,由 javascript 调用自动填充并使用 ajax 提交。您需要查看 Django 文档以了解如何实现。

标签: javascript django python-3.x django-templates geodjango


【解决方案1】:

您需要创建一个函数,在该函数中 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 属性的隐藏字段/链接/按钮。

【讨论】:

  • 我会在确认它有效后立即检查它我会在你的答案中添加一个复选标记我现在已经投票了
猜你喜欢
  • 2022-11-25
  • 2011-02-09
  • 2019-06-22
  • 2014-03-20
  • 2015-04-13
  • 2015-12-23
  • 2011-06-15
  • 2013-10-17
  • 2011-04-16
相关资源
最近更新 更多