Python django模型字段取决于另一个字段的值

Python django模型字段取决于另一个字段的值,python,django,django-models,Python,Django,Django Models,我的应用程序的用例是,我将有多个字段需要填写,其中一个是行业字段,另一个是品牌细分字段。行业领域就像品牌所属的范畴。因此,如果我选择行业作为医疗保健用于XYZ品牌,则细分字段应显示“阿育吠陀”、“牙科诊所”(所有医疗保健相关项目)等项目。基本上,它类似于子类别 这是一个示例模型 class Industry(models.Model): name = models.CharField(max_length=150, blank=True, null=True) class Me

我的应用程序的用例是,我将有多个字段需要填写,其中一个是行业字段,另一个是品牌细分字段。行业领域就像品牌所属的范畴。因此,如果我选择
行业
作为
医疗保健
用于
XYZ品牌
,则
细分
字段应显示“阿育吠陀”、“牙科诊所”(所有医疗保健相关项目)等项目。基本上,它类似于子类别

这是一个示例模型

class Industry(models.Model):
    name = models.CharField(max_length=150, blank=True, null=True)

    class Meta:
        verbose_name = 'Industry'
        verbose_name_plural = 'Industries'

    def __str__(self):
        return self.name



class Segment(models.Model):
    industry = models.ForeignKey(Industry, related_name='segment', on_delete=models.CASCADE)
    name = models.CharField(max_length=150, blank=True, null=True)

    class Meta:
        verbose_name = 'Segment'
        verbose_name_plural = 'Segments'

    def __str__(self):
        return f'{self.industry.name} - {self.name}'


class BusinessModel(models):
    industry = models.ForeignKey(Industry, blank=False, null=False, related_name='industry', on_delete=models.CASCADE)
    # segements = models.ForeignKey()
    total_investment = models.CharField() # will be choice field
这是一个简单的模型,我没有创建分段模型,因为我不知道如何解决这个问题。我只是好奇地想知道,在这种情况下,我是否需要在
models.py
或视图中使用一些特殊的东西。这种类型的事情在开发阶段出现,因此,我想弄清楚django中的问题解决模式

更新


在这里,如果您选择“行业内部业务模型”部分,则该细分将相应更新。

您需要定义模型之间的关系。您可以找到适用于您的案例的关于多个关系的文档。

您可以使用3个模型设计,如

class Industry(models.Model):
    name = models.CharField(max_length=150, blank=True, null=True)

class Segment(models.Model):
    name = models.CharField(max_length=150, blank=True, null=True)

class Mapping(models.Model):
     industry = models.ForeignKey(Industry)
     segment = models.ForeignKey(Segment)

所以映射应该是BusinessModel表中的外键,而不是单独的行业和细分表?我不理解您的问题。映射是一个关联实体,与行业和部门相关,我将研究它,谢谢。同时,关联实体是否像许多人中的贯穿物?是的,许多人对许多人将在引擎盖下形成关联实体。如果需要跟踪有关关系本身的信息,则需要将其添加为自己的模型。取决于你在做什么。商业模式应该只属于一个行业,行业有多个细分市场,但商业模式中的细分市场只有一个。我的意思是,如果我选择了医疗保健,那么它有多个部分,但从这些多个部分中,我只能选择一个值。