Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从django模型创建javascript对象(类)_Javascript_Python_Json_Django_Class - Fatal编程技术网

从django模型创建javascript对象(类)

从django模型创建javascript对象(类),javascript,python,json,django,class,Javascript,Python,Json,Django,Class,我正在开发一个单页应用程序,它将加载来自十几个不同django模型的数据,允许用户操作数据,然后将所有更改保存回数据库 通过序列化查询集的结果,我可以将django模型“传递”到模板。例如,我有一个模范人物: class Person(models.Model): id = models.AutoField(primary_key=True) age = models.IntegerField() name = models.CharField(max_length=25

我正在开发一个单页应用程序,它将加载来自十几个不同django模型的数据,允许用户操作数据,然后将所有更改保存回数据库

通过序列化查询集的结果,我可以将django模型“传递”到模板。例如,我有一个模范人物:

class Person(models.Model):
    id = models.AutoField(primary_key=True)
    age = models.IntegerField()
    name = models.CharField(max_length=250)
现在,在我看来,我可以通过序列化将“person”对象以json格式传递给模板

person_object = serializers.serialize("json", Person.objects.filter(id=1))
然后,在我的javascript中:

var someperson = {{ data|safe }};
但是,我希望能够在客户端创建一个“新”person,就好像该person是一个javascript类而不仅仅是一个json对象一样:

var person2 = new Person(id=5,age=33m,name="john");

我的javascript“类”是否有方法继承Django数据模型?或者我需要在django和javascript之间手动重新创建数据模型吗?

您可以将

person = 'new Person(id="%(id)s",age="%(age)s",name="%(name)s")' %
 {'id':person_instance.id , ....}
然后将其作为上下文变量发送到模板,如下所示

var person2 = {{ person }} ;

这并不能解决我的问题。我可以将个人“对象”从django转换为javascript,而不会出现任何问题。在客户端创建新对象是有问题的,因为javascript中没有相应的“类”(函数)来允许我构造新的人员对象。当然,我可以在技术上手动模拟数据模型,但这似乎是一个糟糕的解决方案,因为对模型的更改也需要在javascript构造函数中进行。