2 つの django アプリがあるとします。
- 競技- 競技データを処理します
- エントリ- 競合他社のコンテストへの参加に関連する機能を処理します
大会アプリには、大会のセクションを表すモデルがあります。
class Division(models.Model):
competition = models.ForeignKey(Competition)
discipline = models.CharField(max_length=1, choices=DISCIPLINE_CHOICES)
age_group = models.ForeignKey(AgeGroup)
participants = models.ManyToManyField(Competitor, through='Entry')
エントリーモデルをエントリーアプリに入れたい:
class Entry(models.Model):
division = models.ForeignKey('Division')
competitor = models.ForeignKey(Competitor)
withdrawn = models.BooleanField(default=False)
from ... import ... ステートメントが機能するようにするにはどうすればよいですか? I get the models from these apps ignored by syncdb (インポートが循環しているため)などのインポート ステートメントをfrom entries.models import Entry
挿入したり、それらの 1 つまたは両方を削除したりすると、検証エラーが発生します。
エラー: 1 つ以上のモデルが検証されませんでした: entry.entry: 'division' はモデル Division と関係がありますが、インストールされていないか抽象的です。Competitions.division: 'participants' は、インストールされていないモデル Entry を介して m2m 関係を指定します
なぜこれが起こるのか理解していますが、これを変更して機能させる方法がわかりません(エントリーモデルを競技アプリに移動する必要はありませんが、これは本当にやりたくないことです)。