gpt4 book ai didi

django - 如何在 Django 中加载主干的引导模型

转载 作者:行者123 更新时间:2023-12-02 09:28:21 24 4
gpt4 key购买 nike

当主干应用程序加载时(对于我的应用程序来说,这意味着页面已加载),我需要初始收集数据,主干文档说:

<script>
var accounts = new Backbone.Collection;
accounts.reset(<%= @accounts.to_json %>);
var projects = new Backbone.Collection;
projects.reset(<%= @projects.to_json(:collaborators => true) %>);
</script>

我不明白这个。这是否意味着我应该使用初始数据渲染页面,例如

{{collection_initial_data}}

我在后端使用django,那么如何将上面的代码转换为django模板,类似的东西

 <script>
var accounts = new Backbone.Collection;
accounts.reset({{ @accounts.to_json }});
var projects = new Backbone.Collection;
projects.reset({{ @projects.to_json(:collaborators => true) }});
</script>

无论如何,我对获取主干集合的初始数据感到非常困惑。

最佳答案

当 Backbone 谈论引导时,他们谈论的是:

http://documentcloud.github.io/backbone/#FAQ-bootstrap

换句话说,您应该在 Django HTML 模板中的脚本标记内写出模型的内容。

例如,假设您的 Django 上下文有一个名为“foo_models”的变量,其中包含所有 foo 模型的 JSON 表示形式。您需要编辑 Django 模板来执行以下操作:

<script>
var foo_models = new FooCollection({{foo_models}});
</script>

通过这种方式,您可以保证您的数据在加载时已在页面上准备就绪,并且您的 JS 代码可以使用 JS foo_models 来访问该数据。

现在,您的困惑似乎在于如何首先创建 foo_models Python/Django 变量。我建议在 View 逻辑中而不是在模板中执行此操作,因为在那里您可以使用 Python 及其库的全部功能来序列化 JSON。但是,如果您确实想在 View 中执行此操作,则可以使用与您指定的语法非常相似的语法来执行此操作;查看这个问题的第二个答案:

Django: Parse JSON in my template using Javascript

关于django - 如何在 Django 中加载主干的引导模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16195361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com