私はDjangoを学び、最初の半複合モデルを書いています。私のテーブルの多くは、同様のビュースタイルを念頭に置いて作られているので、多くのオブジェクトには名前、説明、イメージがあります。例:名前、説明、およびURLは(それ以外は全く異なっている)多くのオブジェクトに共通となりますので単純なコードの再利用にDjangoの抽象クラスを使用するのが適切ですか?
class Ingredient(models.Model):
# Standard to many classes
name = models.CharField(max_length=50)
description = models.TextField()
image_url = models.URLField(max_length=200)
# Unique to this class
foodgroup = ..... etc.
、私はそれぞれが継承できる基本クラスを定義し検討していたから:
class BaseObjectWithImage(models.Model):
# Standard to many classes
name = models.CharField(max_length=50)
description = models.TextField()
image_url = models.URLField(max_length=200)
class Meta:
abstract = True
class Ingredient(BaseObjectWithImage):
# Unique to this class
foodgroup = ..... etc.
マイ質問は、簡単なOOPベストプラクティスの質問に近いかもしれませんが、これはDjangoの抽象クラスの愚かな使用かどうか、あるいは3xN行のコードを取り除き、ほとんどのモデルクラスをジェネリック型として扱うことができるかどうかです。