Django使用modals删除用户
我想删除django中使用modals的用户。我有一个删除功能,我不知道我应该如何返回到模板 views.py:Django使用modals删除用户,django,twitter-bootstrap,django-templates,bootstrap-modal,Django,Twitter Bootstrap,Django Templates,Bootstrap Modal,我想删除django中使用modals的用户。我有一个删除功能,我不知道我应该如何返回到模板 views.py: @login_required(login_url='admin_signin') @admin_only def admin_profiles_deletion(request, username): context = {} account = Account.objects.get(username=username) account.delete()
@login_required(login_url='admin_signin')
@admin_only
def admin_profiles_deletion(request, username):
context = {}
account = Account.objects.get(username=username)
account.delete()
messages.success(request, "User deleted!")
context['account'] = account
return render(request, 'HOW SHOULD I REFER MODALS HERE?', context)
我的url.py
看起来:
path('admin/profile/<str:username>/delete', views.admin_profiles_deletion, name='admin_profiles_deletion'),
path('admin/profile//delete',views.admin\u profiles\u deletation,name='admin\u profiles\u deletation'),
最后,我的模板是:
<td class="text-center td-actions">
<a href="{% url 'admin_view_profiles' account.username %}"><i class="la la-eye view"></i></a>
<a href="{% url 'admin_profiles_general_edition' account.username %}"><i class="la la-edit edit"></i></a>
<a href="{% url 'admin_profiles_deletion' account.username %}" data-toggle="modal" data-target="#deleteaccount">
<i class="la la-close delete"></i>
</a>
<!-- Modal -->
<div class="modal fade" id="deleteaccount" tabindex="-1" role="dialog" aria-labelledby="deleteaccountTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="deleteaccountTitle">Delete confirmation</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<h5>Do you want to delete?</h5>
</div>
<div class="modal-footer">
<div class="col-6 text-left">
<div class="previous">
<form method="POST">
{% csrf_token %}
<input class="btn btn-danger btn-sm btn-block" type="submit" name="submit" value="Yes">
</form>
</div>
</div>
<div class="col-6 text-left">
<div class="next">
<a class="btn btn-info btn-sm btn-block" href="{% url 'accounts' %}">No</a>
</div>
</div>
</div>
</div>
</div>
</div>
</td>
删除确认
&时代;
是否要删除?
{%csrf_令牌%}
在模式中,我想点击YES
,然后删除特定帐户。但是当我使用情态动词时,我不知道怎么做。试试这个
from django.shortcuts import redirect
...
def admin_profiles_deletion(request, username):
...
return redirect("/admin/profile/")
# or to return to same (previous) page:
return redirect(request.META['HTTP_REFERER'])
在模板中,将action
属性添加到表单中
<form method="POST" action="{% url 'admin_profiles_deletion' account.username %}">
{% csrf_token %}
<input class="btn btn-danger btn-sm btn-block" type="submit" name="submit" value="Yes">
</form>
而不是使用jQuery
<script>
$(document).ready(function() {
$('a.deleteaccount').on( "click", function() {
event.preventDefault();
$('#deleteaccount form').attr('action', $(this).data("url"));
$('#deleteaccount').modal('show');
});
});
</script>
是否要使用ajax(不刷新页面)?还是只想返回用户列表?您会遇到什么错误?谢谢,我没有使用ajax。这就是我的html文件和
url.py
和views.py
中的全部内容。通过点击YES
answer,我想删除特定的用户(account.username)。可以,但这样不会删除该用户。我的模式不是查看admin\u profiles\u deletation
函数。@M.J,好的,现在我明白你的问题了。)我已经更新了我的答案。您可以使用jQuery
打开modal
,并动态更改action
属性。很好,我添加了属性action
,但每当我要删除用户时,它都会删除最新的用户。未引用的:)我的意思是是否要删除{{account.username}?
始终引用最新的用户。在模式标记中,但在
@M.J之前打印true用户名
,请参见工作示例。在jQuery.js
和bootstrap.js
之后,将jQuery脚本添加到body
html标记的底部。那一定有用。
<script>
$(document).ready(function() {
$('a.deleteaccount').on( "click", function() {
event.preventDefault();
$('#deleteaccount form').attr('action', $(this).data("url"));
$('#deleteaccount').modal('show');
});
});
</script>
...<!-- YOUR TABLE -->
<td class="text-center td-actions">
<a href="{% url 'admin_view_profiles' account.username %}"><i class="la la-eye view"></i></a>
<a href="{% url 'admin_profiles_general_edition' account.username %}"><i class="la la-edit edit"></i></a>
<a href="#" data-username="{{ account.username }}" data-url="{% url 'admin_profiles_deletion' account.username %}" class="deleteaccount">
<i class="la la-close delete"></i>
</a>
</td>
....<!-- YOUR TABLE -->
<!-- Modal OUT OF TABLE -->
<div class="modal fade" id="deleteaccount" tabindex="-1" role="dialog" aria-labelledby="deleteaccountTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="deleteaccountTitle">Delete confirmation</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<!-- ADD SPAN TO ADD USERNAME dynamically -->
<h5>Do you want to delete <span id="current_username"></span>?</h5>
</div>
<div class="modal-footer">
<div class="col-6 text-left">
<div class="previous">
<form method="POST">
{% csrf_token %}
<input class="btn btn-danger btn-sm btn-block" type="submit" name="submit" value="Yes">
</form>
</div>
<div class="col-6 text-left">
<div class="next">
<a class="btn btn-info btn-sm btn-block" href="{% url 'accounts' %}">No</a>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- ADD BELOW CODE TO THE BOTTOM OF BODY -->
<script>
$(document).ready(function() {
$('a.deleteaccount').on( "click", function() {
event.preventDefault();
$('#deleteaccount form').attr('action', $(this).data("url"));
$('#deleteaccount #current_username').text($(this).data("username"));
$('#deleteaccount').modal('show');
});
});
</script>