Django 模型 - 当用户选择选项时如何添加子类型选项?

我正在做一个项目,其中他们有我用 CHOICES 处理过的各种工作类型,但是,我想为选择工作类型 1 时添加条件,子类型 xy 成为选择。我对你如何做到这一点的语法有问题。我在下面包含了我的伪代码......感谢任何帮助!


from django.db import models


class User(models.Model):

    name = models.CharField(max_length=255)


    def __str__(self):

        return self.name


class 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


湖上湖
浏览 271回答 1
1回答

芜湖不芜

我可能会使用 job_type 模型,它有一个名称和一个“子类型”字段。class JobType(models.Model):    SubTypeChoices = (...)    name = models.CharField()    subtype = models.CharField(choices=SubTypeChoices, ...)class Job(models.Model):    ....    job_type = models.ForeignKey(JobType, ...)    ....通过这种方式,您可以将您的“子类型”与一个 job_type 相关联。如果出于某种原因您可以为一个作业设置多个 job_type,请使用 ManyToMany 字段。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python