我尝试在Django ListView模板中创建一个带有javascript“location.href”属性的按钮。
{% for item in object_list %}
<div class="clear_float">
<h2><a href = "{% url 'photo:album_detail' item.id %}">{{ item.title }}</a></h2>
 <b><i>{{ item.description }}</i></b>
<p style="display:inline" class="editbutton">
<b><button onclick="photoAdd()">Add Photo</button></b>
{% if item.author == request.user %}
<b><button onclick="albumEdit()">Edit</button></b>
<b><button onclick="albumDelete()">Delete</button></b>
{% endif %}
</p>
</div>
{% endfor %}
而且albumEdit()和albumDelete()编码如下。
function albumEdit(){
location.href="{% url 'photo:album_edit' object.id %}";
}
function albumDelete(){
location.href="{% url 'photo:album_delete' object.id %}";
}
{% url 'photo:album_edit' object.id %}
返回“photo / object.id / edit /”
问题是,我猜,ListView返回object_list,因此javascript函数用于FOR循环中的item对象。 我尝试用item.id替换object.id,但它没有用。
所以我也尝试了另一种方法来为javascript函数提供一个参数,如下所示。
<b><button onclick="albumEdit({% url 'photo:album_update' item.id %})">Edit</button></b>
和javascript
function albumEdit(arg){
var address = arg;
location.href=encodeURI(address);
}
因为我不太了解javascript,它也没有用。 我将不胜感激任何建议和帮助。
谢谢:D
答案 0 :(得分:1)
我用输入的javascript代码将其修改为onclick属性,如
<b><button onclick="location.href='{% url 'photo:album_edit' item.id %}'">Edit</button></b>
答案 1 :(得分:0)
您可以在js onclick函数中传递参数:
function albumEdit(href_url){
location.href=href_url;
}
并使用它来进行重定向:
{{1}}