为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

湖上湖 2021-09-14 16:02:06
我正在做一个项目,其中他们有我用 CHOICES 处理过的各种工作类型,但是,我想为选择工作类型 1 时添加条件,子类型 xy 成为选择。我对你如何做到这一点的语法有问题。我在下面包含了我的伪代码......感谢任何帮助!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贡献1796条经验 获得超7个赞

我可能会使用 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 字段。


查看完整回答
反对 回复 2021-09-14
  • 1 回答
  • 0 关注
  • 263 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信