我正在寻找通往" concatene"使用Javascript变量的django对象列表(通过views.py中的get_queryset获取)。然后将它们连接到模型对象的字段中。
我的模型是博客文章,包含post_title字段(charfield)。 在我的index.html中,我有一个id =" 1"或id =" 2"对应于页面的索引和onClick =" displayPostContentOnPageButtonCliked(this.id)"属性。
我的index.html检索名为all_post_by_date的context_object_name中的所有post对象。 在我的index.html中,我想在警告对话框中显示与单击按钮对应的帖子标题,如:
<script>
function displayPostContentOnPageButtonCliked(page_button_clicked_id){
var all_posts_by_date = "{{all_posts_by_date.page_button_clicked_id.post_title}}";
alert(all_posts_by_date);
}
</script>
但这不起作用。我尝试添加过滤器或创建我自己的过滤器(称为get_index,但只能设法得到:all_posts_by_date | get_index:page_button_clicked_id并且无法组合.post_title部分。 我的问题是:如何让{{all_posts_by_date.page_button_clicked_id.post_title}}工作,并警告&#34;帖子3&#34;点击按钮3时? 谢谢你!
答案 0 :(得分:2)
两种解决方案:(1)在调用JS函数时将您想要的数据发送到JS函数。
<script>
function showPostTitle(post_title){
alert(post_title);
}
</script>
. . .
{% for x in all_posts_by_date %}
<div id='blog-post-{{ x.id }}' on-click="showPostTitle('{{ x.post_title }}')">
. . .
{% endfor %}
或者您可以自己序列化数据以供日后使用:
<script>
var titles = [];
{% for x in all_posts_by_date %}
titles.push('{{ x.post_title }}');
{% endfor %}
function displayPostContentOnPageButtonCliked(nId) {
var title = titles[nId - 1];
alert(title);
}
</script>