2016-10-13 7 views
0

サードパーティのアプリケーション(django-oscar)からモデルをサブクラス化する必要があります。私はこのdjango - 新しいメソッドを追加するだけのモデルをサブクラス化する

from oscar.apps.catalogue.models import Category 

class NewCategory(Category): 
    @property 
    def product_count(self): 
     return self.product_set.all().count() 

    class Meta: 
     db_table = 'catalogue_category' 

を行う場合

Djangoは、それは、マルチテーブル継承だと思います、とNewCategoryCategoryの子モデルです。これは私が離れてこの

def product_count(self): 
    return self.product_set.all().count() 

Category.product_count = product_count 

で取得することができ、このような

OperationalError at /api/categories/ 
no such column: catalogue_category.category_ptr_id 

としてエラーになりますが、これは素敵ないないようだ、プラス私は@propertyデコレータをこのように追加することができません。

これを行うクリーナー方法はありますか?

答えて

1

proxy modelが必要です。

class NewCategory(Category): 
    class Meta: 
     proxy = True 

    ... 
関連する問題