0

このモデルのセットアップに関するアドバイスを探しています。

この求人掲示板アプリには、会社、場所、およびジョブがあります。次の関係が必要です。

  • 会社は複数の場所を持つことができます
  • 会社は複数の仕事を持つことができます
  • ジョブは 1 つの会社のみを持つことができます
  • ジョブは複数の場所を持つことができますが、各場所はジョブの会社に対して有効である必要があります

これらの関係を反映したモデルを作成したいと考えています。このようなものがうまくいくと思います:

class Company(models.Model):
    name = models.CharField(max_length=200)
    description = models.TextField()

class Location(models.Model):
    is_primary_location = models.BooleanField()
    address = models.CharField(max_length=200)
    company = models.ForeignKey(Company)

class Job(models.Model):
    title = models.CharField(max_length=200)
    company = models.ForeignKey(Company)
    location = models.ForeignKey(Location)

しかし、「Job has Location(s) through Company」という関係が強制されることを本当に望んでいます。モデルはそれを強制しません。データが表示されるときに有効な場所をフィルタリングする必要があると思いますが、それは避けたいと思います。

どうもありがとう!

4

2 に答える 2

1

ForeignKey.limit_choices_toを見てください。

これにより、利用可能な選択肢をフィルタリングでき、ModelForm で適用されます。ジョブ モデルには既に会社の外部キーがあるため、それを使用して選択肢をフィルター処理できるはずです。

于 2013-10-15T15:48:46.860 に答える