Django管理站点反向ForeignKey内联

时间:2009-12-22 22:05:24

标签: django django-models django-admin

我有这些模特:

(伪代码)

Course:  
  ForeignKey(Outline, null=True, blank=True)  
  ForeignKey(OutlineFile, null=True, blank=True)

Outline:    
  //data

OutlineFile:    
  //different data

情况是任何课程都可以有一个与之关联的大纲,和/或一个OutlineFile,或两者都没有。大纲可以与多个课程相关联,类似地,大纲文件可以与多个课程相关联。但是,一门课程最多只能有一门课程。

我想要的是让课程更改管理页面显示所有课程字段,并为每个Outline和OutlineFile下拉。如果选择了一个,我希望显示和修改该大纲的字段,就像内联字段一样。

我应该以某种方式重组我的模型,还是已经充分构建了它们?无论如何在当前的内联系统范围内做我想做的事情吗?

最后,如果不可能,我从哪里开始以自定义方式进行?

1 个答案:

答案 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表单时,此模型结构将创建一个默认情况下指定的下拉列表。