我刚用Django和HTML/Javascript模板启动了一个web应用程序。在
我的Djangospot
应用程序包含一个Spot
模型,该模型被发送到一个HTML模板中,以便与googlemapapi一起使用。我在遍历包含Spot.objects.all()
的变量spots
时遇到了一个问题。
问题似乎来自于我将数据发送到HMTL文件的方式。在
-----------------------------Spot
Django应用程序:模型.py--------------------------------------------在
class Spot(models.Model):
idn = models.IntegerField(unique = True)
name = models.CharField(max_length = 200)
longitude = models.FloatField()
latitude = models.FloatField()
---------------------------------------------------HTML/JS-----------------------------------
^{pr2}$那么,这些列表就不包含以后可以使用的任何数据。更糟糕的是,如果未对names.push( {{spot.name}} )
进行注释,则HTML文件将无法工作。在
-----------------------------Spot
Django应用程序:视图.py--------------------------------------------在
from spots.models import Spot
def index(request):
return render(request, 'index.html', {'spots':Spot.objects.all()})
(感谢下面列出的cd4{I>和其他问题的序列化)。问题依然存在。我用JS解析数据的方式有问题吗?在
我查看了以下链接:
没有成功。所以,如果答案包含或与这些主题相关,你介意给我解释一下我已经工作了好几天了。。。在
编辑: 问题是多方面的:
{{ spot.name }}
添加到'{{ spot.name }}'
,仅添加到非整数/浮点模型(即仅models.CharFields
字段)
即使如此,我认为将数据序列化为Json是更好的主意。您的javascript代码不起作用,因为例如
{{ spot.name }}
将呈现原始字符串,因此javascript要理解它,您需要将其放在引号中(当然,每行后面还有分号)。在Django无法识别这些模板标记,因为大括号和百分比之间有空格。所以,根本就没有循环。您需要以正确的格式编写它们:
一旦你这样做了,你将开始得到各种各样的JS语法错误,因为你没有把你的数据用引号包装起来。但是,正如评论所说,将其作为JSON来处理会更好。在
相关问题 更多 >
编程相关推荐