この質問はPythonの継承に関するものですが、Djangoの例で説明されていますが、これは問題にはなりません。
私はこのDjangoモデルを持ってPage
おり、RichText
モデルもあります:
class Gallery(Page, RichText):
def save(self, *args, **kwargs):
# lot of code to unzip, check and create image instances.
return "something"
save
別のクラスでメソッドを使用することにのみ興味があります。
解決策は次のとおりです。
class MyGallery(models.Model):
def save(self, *args, **kwargs):
# here goes the code duplicated from Gallery, the same.
return "something"
コードの重複を避けたいのですが、Page
とからメンバーを継承することに興味がRichText
ありません(したがって、実行したくありませんclass MyGallery(Gallery):
。合法である場合は、次のように記述します。
class MyGallery(models.Model):
# custom fields specific for MyGallery
# name = models.CharField(max_length=50)
# etc
def save(self, *args, **kwargs):
return Gallery.save(self, *args, **kwargs)
ただし、inは。ではなくのインスタンスを予期しているため、機能save()
しGallery
ませGallery
んMyGallery
。
メソッドを「切り離して」、そこで定義されているとおりに使用するsave()
方法はありますか?Gallery
MyGallery
編集:
Gallery
私はそれが与えられており、変更することはできないと言うのを忘れました。