У меня есть класс WorderOrder
с предопределенными типами рабочих заданий:
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
имел отношение M2M к тем же вариантам рабочего задания в WorkOrder
учебный класс.Другими словами, каждый поставщик может выполнять один или несколько типов работы.Например, Сантехника Боба может выполнять только «Сантехнику», тогда как Solid Home Repair может выполнять «Электротехнику», «Сантехнику», «Экстерьер» и «Интерьер».
Я понимаю, что могу создать еще одну таблицу с именем WorkType
и использовать внешние ключи от WorkOrder
и M2M от Vendor
, но, поскольку я чувствую, что не буду менять выбор типа работы, я бы предпочел, чтобы они были предопределены в models.py
.
Кроме того, если я могу предопределить его в models.py
, то мне не нужно предварительно заполнять таблицу WorkType
во время развертываний и обновлений.