如何在django中使用类似AJAX的视图?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在django中使用类似AJAX的视图?相关的知识,希望对你有一定的参考价值。
我想使用删除图标显示确认弹出窗口,然后从数据库中删除所选条目。通常,我将为此使用AJAX调用和JS。如何在Django中实现?
模板代码:index.html
<!DOCTYPE html>
{% load staticfiles %}
{% load pm_extras %}
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Portfolio</title>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" href="{% static 'portfolio_management_statics/css/style.css' %}">
</head>
<body>
<div class="container">
<h1>Portfolio</h1>
<form method="post">{% csrf_token %}
<!-- <label for="stock-name">Stock Name: </label><input id="stock-name" name="stock-name" type="text">-->
<!-- <label for="trans-price">Transaction Price </label><input id="trans-price" type="number">-->
<!-- <label for="trans-date">Transaction Date </label><input id="trans-date" type="date">-->
<!-- <label for="quantity">Quantity </label><input id="quantity" type="number">-->
{{ stock_add_form.as_p }}
<input type="submit" value="Add Stock">
</form>
</div>
<div class="container">
<table>
<tr>
<th>Stock Name</th>
<th>Transaction Price</th>
<th>LTP</th>
<th>Transaction Quantity</th>
<th>Transaction Date</th>
<th>Invested Value</th>
<th>Current Market Value</th>
<th>Capital Gains</th>
<th>Capital Gains %</th>
<th></th>
</tr>
{% for stock in portfolio %}
<tr>
<td>{{ stock.stock_name }}</td>
<td>{{ stock.trans_price1 }}</td>
<td>{{ stock_ltps | dict_key:stock.stock_name }}</td>
<td>{{ stock.trans_quantity1 }}</td>
<td>{{ stock.trans_date }}</td>
<td>{{ stock_invested_value | dict_key:stock.stock_name }}</td>
<td>{{ stock_current_value | dict_key:stock.stock_name }}</td>
<td>{{ stock_gains | dict_key:stock.stock_name }}</td>
<td>{{ stock_gains_per | dict_key:stock.stock_name }} %</td>
<td><i class="glyphicon glyphicon-trash"></i></td>
</tr>
{% endfor %}
<tr><th colspan="5">Total</th><th>{{total.total_investment}}</th><th>{{total.total_current_market_value}}</th>
<th>{{total.total_stock_gain}}</th><th>{{total.total_stock_gain_per}} %</th></tr>
</table>
</div>
<script
src="https://code.jquery.com/jquery-3.4.1.slim.min.js"
integrity="sha256-pasqAKBDmFT4eHoN2ndd6lN370kFiGUFyTiUHWhU7k8="
crossorigin="anonymous"></script>
<!-- Latest compiled and minified javascript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
</body>
</html>
答案
该代码将无法输入,但是在思考中,删除按钮将成为带有'onClick'并带有'confirm'HTML字段的按钮,并在其上运行ajax函数。 Ajax调用将具有要删除的具有行ID的“数据”字段,并在完成后在“成功” Ajax字段中使用js中的内部HTML属性在更新表条目中写入一个for循环。
以上是关于如何在django中使用类似AJAX的视图?的主要内容,如果未能解决你的问题,请参考以下文章
使用django时如何在ajax调用中传递request.user?
如何使用 AJAX 或类似的东西在 Django 中使用 Python 脚本?
如何在 Django 中使用 Ajax 对列表视图进行排序?