2012-06-22 46 views
1

部分是基于三层结构,像这样:我可以在此模型中使用Django的默认管理应用程序吗?一个应用程序,我试图建立使用Django的模型

class A(models.Model): 
    name = models.TextField() 

class B(models.Model): 
    related_A = models.ForeignKey(A) 
    info = models.TextField() 

class C(models.Model): 
    related_B = models.ForeignKey(B) 
    other_infos = models.TextField() 

所以由一些B类,这是由一些铯的。由于Django管理员不接受嵌套内联表单,我认为这样做的理想方式是使用这种工作流程:将会有一个“A管理页面”,它会让我有一个点击链接,称为“添加一些B到这个A“,并使用内联C表单为我提供一个带B表单的页面。

有没有一种方法可以简单地从Admin网站上执行此操作,但我没有看到,还是应该考虑扩展管理默认应用程序?

一些澄清

比方说,你做出大陆等国家和地区的统计数据。我的目标是建立一个明确的结构,将一个国家添加到一个大陆,一个地区添加到一个国家。理想情况下,管理界面的用户将无法立即添加“立即”国家;她或他需要浏览一个页面,他必须选择一个大陆。理想情况下,欧洲大陆将有一个单一页面,其中包含国家内联形式,每种形式都有区域内联形式。

由于嵌套内联表单似乎并不是Django 1.3中的一个功能,因此我正在寻找一种在管理站点中拥有某种“工作流程”的方法:用户首先单击“Continent”第一屏;它会显示一个大陆名单;点击一个大陆将显示与这个大陆有关的国家名单;最后,用户可以编辑国家/地区表格,显示一些内联地区表格以允许在同一页面上添加国家和地区。

我希望这个水泥为例,使其更容易理解......

+0

你到底想要什么?您的要求不清楚。 –

回答

0

最简单的方法是使用Country为起点:在表单页面,你可以联编辑Region以及部队人员从存在Continent s到选择或点击+添加新的。

您还可以修改ModelAdmin以打开Country页面,并将其保存的Continent填充到pk,这更困难。也请检查this post

此外,有可能模仿ForeignKey指向AC,和在线编辑在ABC,就像GenericForeignKey一样。但是,对于大多数用途来说,这很困难和过度...

相关问题