将一组对象传递给javascript

时间:2017-03-01 23:55:23

标签: javascript python html forms

我正在尝试以html格式查看某些输入的python列表:

$('input[name=my_array]').serializeObject()

我的输入标记是这样的:

<input type="hidden" name="my_array" value="{{ my_array_of_objects }}">

但我只是得到这样的东西:

[<object_type: an_object object>]

所以我无法访问此对象的任何属性。有没有办法将其转换为我可以查看这些引用的内容?我已经能够在之前的实例中迭代它们,并在我的HTML文件中访问它们的属性:

{% for o in my_array_of_objects %}
   <li> o.id, o.first_name, o.last_name </li>
{% endfor %}

那么我是否可以通过javascript访问此对象?对不起,如果这是noob问题。

编辑:这是我想要通过的一个示例。我正在使用一个django rest框架,我的对象存储在SQLDB中,在如下的python类下:

class my_object(models.Model):

  study_id = models.CharField(max_length = 30, blank = True)
  g1 = models.ForeignKey(G1)
  g2 = models.ForeignKey(G2)

  title = models.IntegerField(choices = TITLE_CHOICES)
  family = models.IntegerField(choices = FAMILY_CHOICES)

当我渲染一些页面时,我创建了一个我需要的这些对象的列表,让我们称之为my_list_of_objects。所以,在HTML表单中,我有一个输入:

<input type="hidden" name="my_list" value="{{ my_list_of_objects }}">

当我在提交表单后尝试在JavaScript端引用此值时,我得到的是

列表
my_list_of_objects =[<my_object: my_object object>, <my_object: my_object object>, ...]

2 个答案:

答案 0 :(得分:1)

无法将该对象转换为JSON对象并进行访问。

JSON.parse($('input[name=my_array]').val());

我仍然没有得到它,你如何创建对象列表。 (可能是因为我对Python不太了解)

顺便提一下,我建议你将Python对象列表转换为服务器页面中的JSON对象。

json.dumps(c.__dict__)

我从here得到了这一行。然后,您可以在java脚本中使用 JSON.parse

答案 1 :(得分:0)

尝试JSON.serialize(my_array_of_objects)