0

たとえば、顧客(Customer)が来て出版社()を評価できるサイトを作成していますPublishingHouseCustomerとの両方のアドレスを格納する必要があるため、次のようなクラスPublishingHouseを作成します。Address

class Address(models.Model):
  line1 = models.CharField(max_length=50)
  line2 = models.CharField(max_length=50)
  city = models.CharField(max_length=50)
  postal_code = models.CharField(max_length=6)
  country = models.CharField(max_length=50)

そして、私たちCustomerPublishingHouseクラスは、次のようにそれへの参照を持っています:

class Customer(models.Model):
  name = models.CharField(max_length=50)
  address = models.ForeignKey(Address)

class PublishingHouse(models.Model):
  name = models.CharField(max_length=50)
  website = models.URLField(max_length=4096)
  address = models.ForeignKey(Address)

Addressこれはdjangoシェルでのインタラクティブセッションでは正常に機能しますが、これらのモデルのadminをアクティブにすると、[顧客の追加]または[パブリッシングハウスの追加]ページにフィールドを表示させる方法はありますか?

django1.5を使用しています

4

1 に答える 1

0

あなたはおそらく一般的なインラインを探しています。文書化された Addressによると、あなたのImageモデルになります

あなたのコメントによると、あなたはクラス継承を使うことができます:

class Address(models.Model):
    # fields

class DynamicAddress(Address):
    content_type = models.ForeignKey(ContentType)
    object_id = models.PositiveIntegerField()
    content_object = generic.GenericForeignKey("content_type", "object_id")
    # etc

max_numまた、ジェネリックインライン管理者クラスの属性を使用して(ジェネリック)インラインを制限することもできます。

于 2013-03-14T11:25:20.310 に答える