我正在做一個(gè)項(xiàng)目,其中他們有我用 CHOICES 處理過(guò)的各種工作類(lèi)型,但是,我想為選擇工作類(lèi)型 1 時(shí)添加條件,子類(lèi)型 xy 成為選擇。我對(duì)你如何做到這一點(diǎn)的語(yǔ)法有問(wèn)題。我在下面包含了我的偽代碼......感謝任何幫助!from django.db import modelsclass User(models.Model): name = models.CharField(max_length=255) def __str__(self): return self.nameclass Job(models.Model): name = models.CharField(max_length=255) user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='jobs') JOB_CHOICES = ( ('carpentry', 'Carpentry'), ('cleaning', 'Cleaning'), ('electrician', 'Electrician'), ('handyman', 'Handyman'), ('hvac', 'HVAC'), ('painting', 'Painting'), ('pest', 'Pest'), ('plumbing', 'Plumbing'), ('roofing', 'Roofing'), ('property', 'Property'), ) jobType = models.CharField(max_length=30, choices=JOB_CHOICES, default='handyman') # If JobType = Carpentry: # CARPENTRY_CHOICES = ( # ('trim', 'trim') # ('sheetrock', 'Sheetrock') # ('windows', 'Windows') # ('doors', 'Doors') # ('cabinets and shelving', 'Cabinets and Shelving') # ('other', 'Other') # ) # jobType = models.CharField(max_length=30, choices=CARPENTRY_CHOICES, default='other') def __str__(self): return self.name
1 回答

蕪湖不蕪
TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊
我可能會(huì)使用 job_type 模型,它有一個(gè)名稱和一個(gè)“子類(lèi)型”字段。
class JobType(models.Model):
SubTypeChoices = (...)
name = models.CharField()
subtype = models.CharField(choices=SubTypeChoices, ...)
class Job(models.Model):
....
job_type = models.ForeignKey(JobType, ...)
....
通過(guò)這種方式,您可以將您的“子類(lèi)型”與一個(gè) job_type 相關(guān)聯(lián)。如果出于某種原因您可以為一個(gè)作業(yè)設(shè)置多個(gè) job_type,請(qǐng)使用 ManyToMany 字段。
添加回答
舉報(bào)
0/150
提交
取消