Django Admin - 如何从外键嵌入视图

Django Admin - How to embed View from Foreign Key

我与包含 LabelQuestion 有一个简单的关系。

class Label(models.Model):
    text = models.CharField(max_length=200)
    subtext = models.CharField(max_length=50)

class Question(models.Model):
    title = models.OneToOneField(Label, on_delete=models.CASCADE)
    question = models.CharField(max_length=200)

如果我打开管理面板编辑 Label,它会显示 2 个文本字段来更新 textsubtext。但是,如果我尝试编辑 Question,它将是所有 Labels.

的下拉列表

直接编辑 Question 及其子 Label 的最佳方法是什么?

在上面的示例中,我希望所有 3 个文本字段(textsubtextquestion)都在同一个视图中,编辑它们将更新正确的表格数据库。

我与一个更熟悉数据库设计的人交谈过,他建议将结构反转为“所有从属子项都应引用其父项”。如果您阅读了 Django 的教程,他们使用了具有 QuestionChoices 的轮询示例,并且每个 Choice 都引用了 Question.

所以我将我的模型改成了这样:

class Question(models.Model):
    question = models.CharField(max_length=200)

    @property
    def title(self):
        labels = self.get_labels()
        return labels[0].text

class Label(models.Model):
    text = models.CharField(max_length=200)
    subtext = models.CharField(max_length=50)

然后使用内联来允许编辑视图。