在我的 Django 应用程序中,我希望允许管理员编辑所有用户(更改组等),并且我正在将包含所选用户用户名和 JavaScript 的表单数据传递到另一个模板。我想使用这个用户名来查询用户,以找到更改用户对象所需的正确信息。
如何将模板中的 JavaScript 变量传递给 Django 变量?
在第一个模板 users.html 中:
<form action="{% url 'app:edituser' %}" method="get" name="form">
<p>
<b>Username: </b>{{ i.username }}
<a class="btn btn-primary btn-sm btn-danger" style="float:right" href="{% url 'app:all_users' %}" onClick="deleteUser()">Delete</a>
<input type="hidden" id="value" name="username" value="{{ i.username }}" />
<button class="btn btn-primary btn-sm btn-info" style="float:right" type="submit">Edit</button>
</p>
</form>
在第二个模板 edituser.html 中:
<h1>Edit user</h1>
<p><b>Username: </b><span id="data"></span></p>
<p><b>Groups: </b><span id="data1"></span></p>
<a class="btn btn-primary btn-sm btn-danger" href="{% url 'authenticator_app:all_users' %}">Cancel</a>
<script>
// Get the wanted parameters from the previous page's form.
function getParameterByName(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, '\\$&');
var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, ' '));
}
// Parameters
var name = getParameterByName('username');
var group = getParameterByName('groups');
// Add the data to elements in html
document.getElementById("data").innerHTML = name;
document.getElementById("data1").innerHTML = group;
</script>
我是 Django 的新手,非常感谢您提供详细的答案!