1

私がdjangoで構築しようとしているアプリのモデルの一部は、次のような3層構造に基づいています:

 class A(models.Model):
     name = models.TextField()

 class B(models.Model):
     related_A = models.ForeignKey(A)
     info = models.TextField()

 class C(models.Model):
     related_B = models.ForeignKey(B)
     other_infos = models.TextField()

したがって、A はいくつかの B で構成され、いくつかの B はいくつかの C で構成されています。Django管理者はネストされたインラインフォームをまだ受け入れていないので、理想的な方法はこの種のワークフローであると考えていました.「管理者ページ」があり、「追加」というリンクをクリックする.この A に B をいくつか」と入力し、インライン C フォームを使用した B フォームを含むページを提供してくれます。

表示されなかった管理者 Web サイトから簡単にこれを行う方法はありますか、または管理者の既定のアプリケーションを拡張することを検討する必要がありますか?

いくつかの説明

大陸、国、地域に関する統計を作成するとします。私の目標は、国を大陸に、地域を国に追加するための明確な構造を持つことです。理想的には、管理インターフェースのユーザーが Country を「すぐに」追加できないようにします。彼女または彼は、大陸を選択する必要があるページを通過する必要があります。理想的には、インライン形式の国を含む大陸用の 1 つのページがあり、各フォームにはインライン形式の地域があります。

ネストされたインライン フォームは Django 1.3 の機能ではないように思われるため、管理サイトに一種の「ワークフロー」を持たせる方法を探しています。ユーザーは最初の画面で「大陸」をクリックします。次に、大陸のリストが表示されます。大陸をクリックすると、その大陸に関連付けられている国のリストが表示されます。最後に、ユーザーは Country フォームを編集し、いくつかのインライン地域フォームを表示して、同じページに国と地域を追加できるようにしました。

この具体的な例が理解しやすいといいのですが...

4

2 に答える 2

0

U は GenericForeginKey() を使用して制限の問題を解決できます。

参照https://docs.djangoproject.com/en/dev/ref/contrib/contenttypes/

于 2012-06-22T07:24:33.257 に答える
0

最も簡単な方法はCountry、開始点として使用することです。そのフォーム ページでは、インライン編集を行うことができ、既存のRegionから選択するかContinent、 をクリックして新しいものを追加するようスタッフに強制することができます+

ページModelAdminを開いてそこに保存されたデータを入力するように変更することもできますが、これはより困難です。この投稿もチェックしてください。CountrypkContinent

さらに、 inへのForeignKeyポインティングを模倣し、とinの両方でインライン編集することも可能です。ただし、ほとんどの用途では難しく、やり過ぎです...ACBCAGenericForeignKey

于 2012-06-22T13:07:11.893 に答える