在Python/Django模板中序列化模型

thr*_*eez 3 python django django-templates

我正在尝试序列化一些代表django模板中用户设置的模型.这是我正在做的事情:

<script type="text/javascript">
   var mutes = {{ user.appuser.mutes.all|safe }};
</script>
Run Code Online (Sandbox Code Playgroud)

而不是json,我得到以下内容:

<script type="text/javascript">
   var mutes = [<Mute: Mute object>, <Mute: Mute object>];
</script>
Run Code Online (Sandbox Code Playgroud)

我是新手,显然做错了什么.任何帮助赞赏!

git*_*rik 5

通常,直接序列化django模型以供在前端使用并不是一个好主意,主要是因为安全性.如果您的模型上的数据不允许您的用户阅读,该怎么办?

因此,您通常会手动在javascript中创建对象:

var objects = [];

{% for model in models %}
    objects[] = {
        name: {{ model.name }},
        date: {{ model.date }},
        // etc.
    };
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

这样,只有您在模板中明确定义的数据才能进入javascript.如果您的模型将来发生变化并添加敏感数据,它将不会出现在javascript对象中.