2017-02-28 6 views
1

私は自転車屋のためのアプリケーションを書いています。 Repairs(つまりフラット修理)をTransactionに割り当てる必要があります。それぞれの修理には名前、説明、価格があります。各取引にはrepairsフィールドがあります。 Transactionについては、私には論理的意味を持つManyToManyFieldを使用する場合、データベースから項目を適切に選択する方法?

repairs = models.ManyToManyField(Repair, blank=True) 

があります。しかし、40種類以上の修理があります。トランザクションに修理を追加すると、新しいトランザクションを作成して修理を追加するたびにRepairの新しいインスタンスを作成する必要はありません。その特定の修理のためのポインタが必要です。 つまり、Repairは価格と説明で修理のリストとして機能し、Transactionにはこれらの修理のリストを示すフィールドがあります。また、Transactionの私のフィールドは、修復が完了したかどうかを指定できる必要があります。

Transactionによって指されているItem(すなわち、チューブ)について同じ種類のことをする必要があります。

私はDjangoでこれを行う方法がわかりません。私はそれをやりすぎるかもしれません、または私のデータベース設計が貧弱かもしれません。

答えて

0

これは合理的なデザインのように聞こえますが、inbuilt ManyToManyFieldはそのスキーマに適しています。

Djangoフォームモジュールを使用してフォームを構築し、データを受信して​​検証する場合は、MultipleChoiceFieldが、Repairのオブジェクトを選択することをお勧めしますTransactionに関連付けられています。 (https://docs.djangoproject.com/en/dev/ref/forms/fields/#multiplechoicefield)。その場合、__init__という形式のトランザクションに対して利用可能なRepairをフィルタリングすることができます。

関連する問題