我有这些模特:
(伪代码)
Course:
ForeignKey(Outline, null=True, blank=True)
ForeignKey(OutlineFile, null=True, blank=True)
Outline:
//data
OutlineFile:
//different data
情况是任何课程都可以有一个与之关联的大纲,和/或一个OutlineFile,或两者都没有。大纲可以与多个课程相关联,类似地,大纲文件可以与多个课程相关联。但是,一门课程最多只能有一门课程。
我想要的是让课程更改管理页面显示所有课程字段,并为每个Outline和OutlineFile下拉。如果选择了一个,我希望显示和修改该大纲的字段,就像内联字段一样。
我应该以某种方式重组我的模型,还是已经充分构建了它们?无论如何在当前的内联系统范围内做我想做的事情吗?
最后,如果不可能,我从哪里开始以自定义方式进行?
答案 0 :(得分:1)
你正在反过来这样做:
class Course(models.Model):
# Foreign key is defined only in related fields
class Outline(models.Model):
course = models.ForeignKey(Course,
related_name='outlines', # Or whatever you choose
null=True, # These two mean your FK relation is basically optional
blank=True
)
class OutlineFile(models.Model):
# Same structure as above
创建std表单时,此模型结构将创建一个默认情况下指定的下拉列表。