2012-10-09 25 views
0

我是新來的Django和我的DeleteView是這樣寫的:Django如何從視圖中刪除對象?

class ObjectDelete(DeleteView): 
    def post(self, request, *args, **kwargs): 
     blah blah 
     return super(ObjectDelete, self).post(request, *args, **kwargs) 

我很困惑,我如何會刪除對象,因爲我還沒有看到object.delete在函數的任何位置。

回答

4

對象的實際刪除由DeletionMixin完成,該對象爲django.views.generic.edit.BaseDeleteView的父親​​使用。

這裏是DeletionMixin

class DeletionMixin(object): 
    """ 
    A mixin providing the ability to delete objects 
    """ 
    success_url = None 

    def delete(self, request, *args, **kwargs): 
     """ 
     Calls the delete() method on the fetched object and then 
     redirects to the success URL. 
     """ 
     self.object = self.get_object() 
     self.object.delete() 
     return HttpResponseRedirect(self.get_success_url()) 

    # Add support for browsers which only accept GET and POST for now. 
    def post(self, *args, **kwargs): 
     return self.delete(*args, **kwargs) 

    def get_success_url(self): 
     if self.success_url: 
      return self.success_url 
     else: 
      raise ImproperlyConfigured(
       "No URL to redirect to. Provide a success_url.") 

它獲取使用get_object()被刪除的對象。

+0

但是哪裏是告訴什麼對象要刪除的行,哪一行觸發刪除 – user825904