从Django模型创建JavaScript对象(类)

5 投票
1 回答
1117 浏览
提问于 2025-04-18 08:38

我正在开发一个单页面应用,这个应用会从大约十个不同的 Django 模型中加载数据,让用户可以对这些数据进行操作,然后把所有的更改保存回数据库。

我可以通过将查询结果序列化来“传递” Django 模型给模板。例如,我有一个模型叫做 Person:

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 是一个 JavaScript 类,而不仅仅是一个 JSON 对象:

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

有没有办法让我的 JavaScript “类”继承 Django 数据模型?还是说我需要手动在 Django 和 JavaScript 之间重新创建我的数据模型?

1 个回答

0

你可以把整个内容放在一个字符串里

person = 'new Person(id="%(id)s",age="%(age)s",name="%(name)s")' %
 {'id':person_instance.id , ....}

然后把它作为上下文变量发送到模板中,这样看起来就像这样

var person2 = {{ person }} ;

撰写回答