如何根据 Django 模板中单击的 link 从列表中获取元素?
How to get an element from list based on clicked link in Django Template?
我正在创建私人消息应用程序,并以这种方式呈现我的消息:
return render(request,'mssg/mssg_page.html', {'inbox':inbox, 'current_mssg':current_mssg,})
收件箱包含所有邮件。当前消息是应该完全显示的消息。我在模板中列出了如下所示的消息:
{% for mssg in inbox %}
<a href="#"><!-- here -->
<div class="right">
<h3>{{ mssg.mssg_from.username }} <small>{{ mssg.delivery_date }}</small></h3>
<h2>{{ mssg.title|safe }}</h2>
<p>{{ mssg.text|safe|truncatewords:15 }}</p>
</div>
</a>
{% endfor %}
我也在同一模板中显示完整的当前消息。
我想在使用 <!-- here -->
comment
单击 link 后更改当前消息
我知道我可以发送消息 ID 来查看、验证它并将它发送回模板。但它需要刷新页面。但是,所有消息都已在 inbox
中列出的模板中,因此无需刷新页面。我也知道可以像这样从收件箱中选择一条消息 {{inbox.0}}
但我不知道如何让它依赖于点击 link。我想它需要 javascript 。但是即使我知道我可以通过在模板中放置 inbox.0
来做 inbox[0]
之类的事情,我仍然不知道如何做 inbox[varriable]
.
这样的事情
有办法吗?
如果不需要,我不希望我的页面刷新。
PS 我正在使用 bootsrap
使用AJAX 将解决您的问题。请参阅 this Whosebug answer,其中解释了如何执行此操作:
$('a').click(function() { // This is a listener to the link you mentioned.
$.ajax({
url: '127.0.0.1:8000/your_ajax_url', // You will need to create a URL for your AJAX call.
type: 'get', // This is the default though, you don't actually need to always mention it
success: function(data) {
alert(data);
},
failure: function(data) {
alert('Got an error dude');
}
});
}
我正在创建私人消息应用程序,并以这种方式呈现我的消息:
return render(request,'mssg/mssg_page.html', {'inbox':inbox, 'current_mssg':current_mssg,})
收件箱包含所有邮件。当前消息是应该完全显示的消息。我在模板中列出了如下所示的消息:
{% for mssg in inbox %}
<a href="#"><!-- here -->
<div class="right">
<h3>{{ mssg.mssg_from.username }} <small>{{ mssg.delivery_date }}</small></h3>
<h2>{{ mssg.title|safe }}</h2>
<p>{{ mssg.text|safe|truncatewords:15 }}</p>
</div>
</a>
{% endfor %}
我也在同一模板中显示完整的当前消息。
我想在使用 <!-- here -->
comment
单击 link 后更改当前消息
我知道我可以发送消息 ID 来查看、验证它并将它发送回模板。但它需要刷新页面。但是,所有消息都已在 inbox
中列出的模板中,因此无需刷新页面。我也知道可以像这样从收件箱中选择一条消息 {{inbox.0}}
但我不知道如何让它依赖于点击 link。我想它需要 javascript 。但是即使我知道我可以通过在模板中放置 inbox.0
来做 inbox[0]
之类的事情,我仍然不知道如何做 inbox[varriable]
.
这样的事情
有办法吗?
如果不需要,我不希望我的页面刷新。
PS 我正在使用 bootsrap
使用AJAX 将解决您的问题。请参阅 this Whosebug answer,其中解释了如何执行此操作:
$('a').click(function() { // This is a listener to the link you mentioned.
$.ajax({
url: '127.0.0.1:8000/your_ajax_url', // You will need to create a URL for your AJAX call.
type: 'get', // This is the default though, you don't actually need to always mention it
success: function(data) {
alert(data);
},
failure: function(data) {
alert('Got an error dude');
}
});
}