【问题标题】:Django admin site reverse ForeignKey inlineDjango 管理站点反向 ForeignKey 内联
【发布时间】:2010-12-29 07:14:13
【问题描述】:

我有这些模型:

(伪代码)

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

Outline:    
  //data

OutlineFile:    
  //different data

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

我想要的是让课程更改管理页面显示所有课程字段,并为每个大纲和大纲文件提供一个下拉列表。如果随后选择了一个,我希望该大纲的字段可以显示和修改,就像内联字段一样。

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

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

【问题讨论】:

标签: django django-models django-admin


【解决方案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

当您创建标准表单时,此模型结构将默认创建一个您指定的下拉列表。

【讨论】: