Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django使用modals删除用户_Django_Twitter Bootstrap_Django Templates_Bootstrap Modal - Fatal编程技术网

Django使用modals删除用户

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()

我想删除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()
    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">&times;</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">&times;</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>