我有一個WorderOrder
類具有預定義的工單類型:如何在Django模型中爲預定義的chocies設置多對多關係?
class WorkOrder(models.Model) :
WORK_TYPE_CHOICES = (
('hc', 'Heating and cooling'),
('el', 'Electrical' ),
('pl', 'Plumbing' ),
('ap', 'Appliances' ),
('pe', 'Pests' ),
('ex', 'Exterior' ),
('in', 'Interior' ),
('ot', 'Others' ),
)
work_type = models.CharField(max_length = 2, choices = WORK_TYPE_CHOICES)
vendor = models.ForeignKey(Vendor, null = True, blank = True)
因此,每個訂單必須有一個工單類型。稍後,還可以將供應商分配給工單。
我想Vendor
類,以便於同工單的選擇在WorkOrder
類M2M關係。換句話說,每個供應商都能夠執行一種或多種工作類型。例如,Bob's Plumbing只能做「水暖」,而Solid Home Repair可以做「Electrical」,「Plumbing」,「Exterior」和「Interior」。
我明白我可以創建一個名爲WorkType
另一個表,並使用從WorkOrder
外鍵和M2M從Vendor
,但因爲我覺得我不會改變作業方式的選擇,我寧願他們models.py
預定義。
另外,如果我可以在models.py
中預定義它,那麼在部署和升級過程中,我不必預先填充表WorkType
。
難道一個工單搞一個供應商做了一些WorkTypes的?那將是一對多,不是很多,不是嗎? – 2012-03-14 05:12:29
@John Mee Ummm不知道如何回答你的問題。讓我試着澄清一下:每個WorkOrder都有一個WorkType。每個供應商都有許多WorkType。這有幫助嗎? – hobbes3 2012-03-14 05:25:40