Django管理后台变更列表与变更表单集成

0 投票
1 回答
934 浏览
提问于 2025-04-17 22:25

基本上,我有一个包含三个模型的结构,顺序如下:

class Model_A(models.Model):
    # (actually, it doesn't matter what type m_aid is...)
    m_aid = models.IntegerField(primary_key=True)
    # ...

class Model_B(models.Model):
    m_bid = models.IntegerField(primary_key=True)  # same as previous
    m_a = models.ForeignKey('Model_A', db_column='m_aid')
    # ...

class Model_C(models.Model):
    m_cid = models.IntegerField(primary_key=True)  # same as the previous 2
    m_b = models.ForeignKey('Model_B', db_column='m_bid')
    # ...

我想要做的是在管理后台的修改表单模板中稍作调整:在Model_A的修改表单中,我想显示它的子模型Model_B的修改列表,而在Model_B的修改表单中,我想放入Model_C的修改列表。

有没有什么想法可以实现这个?

附注:你可能会觉得这个问题很简单,但我对django(和python)还是新手。

1 个回答

0

你可以使用内联模型来实现这个功能。

这样你在编辑“模型A”的时候,可以同时编辑一个或多个“模型B”的实例。虽然这和你在更改列表中看到的不是完全一样,但内联模型有两种内置的布局方式,分别是堆叠和表格。表格布局的外观最接近你想要的效果。

撰写回答