0

嘿!:)

我有 5 个模型,它们相互分层连接。部分->划分->组->类-> wz

一个部门可以有多个部门,但一个部门只能有一个部门(依此类推)。因此我设置了 ForeignKeys:

# models.py
class NaceSection(models.Model):
    code = models.CharField(max_length=1, unique=True)
    description_english = models.CharField(max_length=500)


class NaceDivision(models.Model):
    code = models.CharField(max_length=2, unique=True)
    nace_section = models.ForeignKey(NaceSection, on_delete=models.CASCADE, related_name="nace_section")
    description_english = models.CharField(max_length=500)


class NaceGroup(models.Model):
    nace_division = models.ForeignKey(NaceDivision, on_delete=models.CASCADE, related_name="nace_division")
    code = models.CharField(max_length=4, unique=True)
    description_english = models.CharField(max_length=500)

我有一个模型,其中所有这些都集成为带有下拉选项的 M2M 字段。我的目标是只获取管理区域中已选择部分中的部门。(等等)

我尝试了智能选择 ChainedForeignKey:

# models.py

class Institution(models.Model):
    nace_sections = models.ManyToManyField(
        NaceSection,
        related_name="nace_sections"
    )
    nace_divisions = ChainedForeignKey(
        NaceDivision,
        chained_field="nace_sections",
        chained_model_field='nace_sections',
        blank=True,
    )
     nace_group = ChainedForeignKey(
        NaceGroup,
        chained_field="nace_divisions",
        chained_model_field='nace_divisions',
        blank=True,
    )

管理区域中的组织和下拉列表根本没有改变,我的所有结果表格的视图告诉我('42S22', "[42S22] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Invalid column name 'nace_divisions_id'. (207) (SQLExecDirectW)")

使用 ChainedManyToManyField 什么都不会发生。有人知道出了什么问题吗?任何帮助表示赞赏!:)

4

1 回答 1

0

nace_sections is specified as models.ManyToManyField in your code

1.Change from ManyToManyField to ForeignKey.

2.Rename chained_model_field values

-->nace_sections to nace_section
-->nace_divisions to nace_division

class Institution(models.Model):
nace_sections = models.ForeignKey(
    NaceSection,
    related_name="nace_sections"
    , on_delete=models.CASCADE
)
nace_divisions = ChainedForeignKey(
    NaceDivision,
    chained_field="nace_sections",
    chained_model_field='nace_section',
    blank=True,
)
nace_group = ChainedForeignKey(
    NaceGroup,
    chained_field="nace_divisions",
    chained_model_field='nace_division',
    blank=True,
)
   
于 2021-11-12T16:44:28.417 回答