我正在尝试编写用于删除项目的代码。但是在删除它之前,我想向用户弹出一条消息,例如“确定要删除吗?”。 我想按ID删除该项目。
我写了这段代码,但是我很确定它不是应该的样子。
请指导我该怎么做。
HTML文件
<div id="film_box">
{% if films %}
{% for film in films %}
<div class="card" style="width: 18rem;">
{% if film.image%}
<img src="{{ film.image.url }}" class="card-img-top" alt="...">
{% endif %}
<div class="card-body">
<h5 class="card-title">{{ film.title}}</h5>
<p class="card-text">{{ film.category_name }}</p>
<p class="card-text">{{ film.country_name }}</p>
<p class="card-text">{{ film.director }}</p>
<p class="card-text">{{ film.release_date }}</p>
</div>
<div class="card-body">
{% if request.user.is_superuser %}
<ul style="list-style:none;">
<li><a href="{% url 'update_director' film.director_id %}" class="card-link">Modify the director</a>
</li>
<li><a href="{% url 'update_film' film.id %}" class="card-link">Modify the film</a></li>
<li><button onclick="document.getElementById('btn_delete').style.display='block'"
name="{{ film.id }}" class="btn btn-danger">DELETE</button></li>
</ul>
{% endif %}
<!--popup message-->
<div id="btn_delete" class="modal">
<span onclick="document.getElementById('btn_delete').style.display='none'" class="close" title="Close
Modal">×</span>
<form class="modal-content" action="/delete/{{film.id}}">
<div class="container">
<h1>Delete film</h1>
<p>Are you sure you want to delete the film?</p>
<div class="clearfix">
<button type="button" onclick="document.getElementById('btn_delete').style.display='none'" class="cancelbtn">Cancel</button>
<button href="{% url 'delete_film' film.id %}" onclick="document.getElementById('btn_delete').style.display='none'" class="deletebtn">Delete</button>
</div>
</div>
</form>
</div>
{% endfor%}
{% endif %}
JAVASCRIPT文件
// Get the modal
var modal = document.getElementById('btn_delete');
console.log(model.name)
// When the user clicks anywhere outside of the modal, close it
window.onclick = function(event) {
if (event.target == modal) {
modal.style.display = "none";
}
}
我想在URL中传递ID,这样我就可以在python文件中捕获它并进行操作。 我应该使用Javascript吗?
答案 0 :(得分:1)
这就是我要做的。请注意,该代码未经测试,但是原理应使您了解如何正确执行该代码。
const aliasArr = ['a', 'b', 'c'];
const applyAliases = <Alias extends string[], Values extends any[]>(aliases: Alias) => (arr: Values) => {
const definition = [...arr];
aliases.forEach((key, i) =>
Object.defineProperty(definition, key, {
enumerable: false,
get(): Values[number] {
return this[i];
},
})
);
return definition as typeof arr & { [P in keyof Alias]: Values[number] };
};
const applied = applyAliases<typeof aliasArr, string[]>(aliasArr)(['test', 'test2', 'test3']);
const test = applied.a // Error, property 'a' does not exist on type string[]