Django Admin - 如何从外键嵌入视图
Django Admin - How to embed View from Foreign Key
我与包含 Label
的 Question
有一个简单的关系。
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 个文本字段来更新 text
和 subtext
。但是,如果我尝试编辑 Question
,它将是所有 Labels
.
的下拉列表
直接编辑 Question
及其子 Label
的最佳方法是什么?
在上面的示例中,我希望所有 3 个文本字段(text
、subtext
和 question
)都在同一个视图中,编辑它们将更新正确的表格数据库。
我与一个更熟悉数据库设计的人交谈过,他建议将结构反转为“所有从属子项都应引用其父项”。如果您阅读了 Django 的教程,他们使用了具有 Question
和 Choices
的轮询示例,并且每个 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)
然后使用内联来允许编辑视图。
我与包含 Label
的 Question
有一个简单的关系。
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 个文本字段来更新 text
和 subtext
。但是,如果我尝试编辑 Question
,它将是所有 Labels
.
直接编辑 Question
及其子 Label
的最佳方法是什么?
在上面的示例中,我希望所有 3 个文本字段(text
、subtext
和 question
)都在同一个视图中,编辑它们将更新正确的表格数据库。
我与一个更熟悉数据库设计的人交谈过,他建议将结构反转为“所有从属子项都应引用其父项”。如果您阅读了 Django 的教程,他们使用了具有 Question
和 Choices
的轮询示例,并且每个 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)
然后使用内联来允许编辑视图。