-1

PythonとDjangoプラットフォームは初めてです。他のクラスが一般クラスを使用して同じモデルタイプを作成できるように、一般クラスを設計しようとしています。よりよく説明するために、私は例を挙げます

私の一般的なクラスは

class Person(models.Model):
 name = models.CharField(max_length=20)
 lastname=models.CharField(max_length=20)
 job=models.CharField(max_length=20)
 salary=models.IntegerField()

作成する各人のPersonクラスとまったく同じテーブルが必要です。

私の心の中にはそのようなものがあります...

Class Person1(models.Model) 
Person()
Class Person2(models.Model) 
Person()

したがって、各personテーブルはPersonクラスと同じモデルタイプになります。その方法を教えていただけませんか。またはそれを行う方法はありますか?

4

2 に答える 2

1

何が欲しいのか、なぜそれが欲しいのかわかりませんが、あなたの質問に対する答えは、抽象基本クラスを使用することだと思います。

例:

class Person(models.Model):
   name = models.CharField(max_length=20)
   lastname = models.CharField(max_length=20)
   job = models.CharField(max_length=20)
   salary = models.IntegerField()

   class Meta:
       abstract = True


class Person1(Person):
    ...
于 2012-09-06T15:53:45.640 に答える
1

あなたが見逃しているのは、djangoのモデルがどのように機能するかについての基本的な理解だと思います。

djangoのモデルは、データベース内のテーブルの表現です。このテーブルには、複数の行を格納できます。書き込む各フィールドは、このテーブルの列です。

モデルPersonがあるので、 djangoは、Personクラスで定義した列を使用してデータベースにテーブルを作成します。このテーブルでは、多くの「人」アイテムを追加できます。

Personモデルですでに説明したものと同じものを格納するために追加のモデルを作成する必要はありません。

継承はdjangoモデルの高度な概念であり、後で問題が発生するだけです。djangoオブジェクトリレーショナルモデル(ORM)(モデル)の使用方法を説明しているので、 djangoチュートリアルを段階的に実行することをお勧めします。

最終的に、複数の「人」を保存するには、次のことを行う必要があることに気付くでしょう。

personA = Person()
personA.name = 'John'
personA.lastname = 'Smith'
personA.job = 'Chef'
personA.salary = 130
personA.save()

personB = Person(name='Homer',lastname='Simpson',job='Donut Eater',salary=100)
personB.save()
于 2012-09-06T16:27:26.993 に答える