2016-04-14 9 views
0

が定義されていない私は、削除ビューの削除メソッドをオーバーライドしようとしています。 私は2モデルCategorySubcategoryを持っています。- グローバル名「自己」が私のジャンゴベースのアプリケーション</p> <p>で

カテゴリはサブカテゴリの外部キーであり、削除時に保護されます。

category = models.ForeignKey(Category, on_delete=models.PROTECT) 

これは、しかし、私は私が取得しています実行するたびview.py で私のクラスである - グローバル名「自己」が定義されていません。

(自己クラスを参照する必要がありますので、コードがクラス内にある。私はそれを使用してインスタンスを作成する必要がありますが、私はジャンゴでオンライン見たすべてのサンプルは、まさにこのようにそれを行うと思った。)

class CategoryDelete(DeleteView): 
    model = Category 
    success_url = reverse_lazy('category_list') 

    def delete(request, *args, **kwargs): 
     self.object = self.get_object() 
     if self.object.gameteams_set.exists(): 
      # Return the appropriate response 
      success_url = self.get_success_url() 
      self.object.delete() 
     return HttpResponseRedirect(success_url) 

答えて

4

あなたの関数の引数はselfが欠落しています。

def delete(self, request, *args, **kwargs): 

delete機能は、クラスCategoryDeleteに属しているので、クラスメソッドは、インスタンスのプロパティにアクセスするselfを必要とします。

関連する問題