与えられたDjangoモデル
class Sub(models.Model):
name = models.CharField(max_length=100)
size_in_inches = models.IntegerField(default=6)
class TunaSub(Sub):
fish_ingredient = models.CharField(max_length=10, default="Tuna")
class MeatballSub(Sub):
meat_ingredient = models.CharField(max_length=20, default="Meatball with Cheese")
たとえば、__str__
メソッド(Python 3.x)のスーパークラスの属性にアクセスしたいと思います。どうすればそうできますか?これは正しい解決策ですか?
class TunaSub(Sub):
fish_ingredient = models.CharField(max_length=10, default="Tuna")
def __str__(self):
return self.super().name
class MeatballSub(Sub):
meat_ingredient = models.CharField(max_length=20, default="Meatball with Cheese")
def __str__(self):
return self.super().name
を拡張するのでSub
、name
との両方のフィールドでもTunaSub
ありMeatballSub
ます。だからあなたは簡単に使うことができます
def __str__(self):
return self.name
あなたが具体的なモデルを拡張しているので、注意点として、次の3つの別々の(名前のデータベース内のテーブルの作成、実際にあるsub
、tuna_sub
とmeatball_sub
の1対1の関係を介して接続されています)。でフィールド定義を再利用するだけでsub
、実際にはそのテーブルを作成しない場合は、抽象基本モデルクラスを使用します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加