2017-06-02 9 views
0

django-popup-view-fieldを使用して削除アクションを確認するためのポップアップを作成しようとしています。私はhttps://pydigger.com/pypi/django-popup-view-fieldで与えられた例に従っています。私が直面している課題は、私がdriver_list.htmlのdeleteボタンをクリックすると削除したいユーザのプライマリキーを渡すことです。ここに私のコードです: `django-popup-view-fieldを使用して削除アクションを確認するためのポップアップを作成します。

drivers_list.htmlは

{% for driver in object_list %} 
    <tr> 
     <td>{{ driver.first_name }} </td> 
     <td>{{ driver.last_name }}</td> 
     <td>{{ driver.licence_category }}</td> 
     <td>{{ driver.phone }}</td> 
     <td>{{ driver.email }}</td> 
     <td>{{ driver.status }}</td> 
     <td align="center"> 
      <a href="{% url 'view_driver' pk=driver.id %}"><button class="btn btn-success btn-sm">View</button></a> 
      <a href="{% url 'edit_driver' pk=driver.id %}"><button class="btn btn-primary btn-sm">Edit</button></a> 
      <a href="{% url "django_popup_view_field:get_popup_view" 'delete_driver' pk=driver.id %}"><button class="btn btn-danger btn-sm">Delete</button></a> 
     </td> 
    </tr> 
{% endfor %} 

** driver_confirm_delete.html **

<h4><span class="label label-warning">Are you sure you want to delete {{ driver.first_name }} {{ driver.last_name }}?</span></h4> 
<div class="row"> 
    <div class="col-md-4"> 
     <form action="{{ target }}" method='POST'> 
      {% csrf_token %} 
      <h4><span class="label label-warning">NOTE:This action cannot be reversed!</span></h4> 
      <ul> 
       {{ form.as_ul }} 
      </ul> 
      <input type="submit" class="btn btn-danger btn-md" value="Confirm delete"/> 
      <a href="{% url 'drivers_list' %}"><button type="button" class="btn btn-info btn-md">Cancel</button></a> 
     </form> 
    </div> 
</div> 

urls.py

urlpatterns = [ 
url(r'^delete_driver/(?P<pk>\d+)/$', d_views.DeleteDriverView.as_view(), name='delete_driver'), 
url(r'^django_popup_view_field/', include('django_popup_view_field.urls', namespace="django_popup_view_field")),] 

views.py

class DeleteDriverView(FormMessagesMixin, DeleteView): 

    model = Driver 
    template_name = 'drivers/driver_confirm_delete.html' 
    success_url = reverse_lazy('drivers_list') 
    form_valid_message = 'Driver was deleted successfully!' 

答えて

0

私はテーブルを作成してみましょう:

<thead> 
     <tr> 
     <th>#</th> 
     <th>Name</th> 
     ... 
     <th>Delete</th> 
     </tr> 
    </thead> 

    {% for driver in object_list %} 
    <tr> 
     <td>{{ driver.first_name }} </td> 
     <td>{{ driver.last_name }}</td> 
     <td>{{ driver.licence_category }}</td> 
     <td>{{ driver.phone }}</td> 
     <td>{{ driver.email }}</td> 
     <td>{{ driver.status }}</td> 
     <td class="delete"value={{driver.id}}><i class="fa fa-remove w3-text-red"></i></td> 
    </tr> 
    {% endfor %} 

とJSで:

$(".detach").click(function(){ 
     var driver_id = $(this).attr("value"); 
     # You can out more value to get into html and get here 

     var res = confirm("This will remove " + app_id + " from List. Are you sure ?"); 

     if (res){ 
      if(ajaxAction) ajaxAction.abort(); 
      ajaxAction = $.getJSON(baseUrl+'/deleteordosomething/', { driver_id: driver_id }, function(data){ 
       alert(data); 
       location.reload(); 
      }); 

     } 
    }); 
関連する問題