2017-02-28 32 views
1

我正在寫一個自行車店的應用程序。我需要能夠將許多Repairs(即平面修理)分配給Transaction。每個維修都有一個名稱,說明和價格。每筆交易都有一個repairs字段。對於Transaction,我有如何在使用ManyToManyField時從數據庫中正確選擇條目?

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

這使得邏輯意義。但是,將會有大約40多種不同類型的維修。當我爲事務添加修復時,我不想每次創建新事務併爲其添加修復時都必須創建Repair的新實例 - 我只想爲該修復指定一個指針。 換句話說,Repair充當可能的維修清單,包含價格和說明,並且Transaction有一個指向這些維修清單的字段。此外,我的Transaction中的字段需要能夠指定每個修復是否已完成。

我需要爲Item(即一個管)做一個Transaction指向的同類物件。

我不確定如何在Django中做到這一點。我可能會推翻它,或者我的數據庫設計可能很差。

回答

0

這聽起來像是一個合理的設計,內置ManyToManyField是該架構的不錯選擇。

就用戶界面而言,如果您使用Django表單模塊來構建表單並接收和驗證數據,那麼我建議MultipleChoiceField可能是您選擇Repair對象的最佳選擇與Transaction相關聯。 (https://docs.djangoproject.com/en/dev/ref/forms/fields/#multiplechoicefield)。在這種情況下,您可以以__init__的方式篩選交易的可用Repair

相關問題