Django admin:如何在单个管理视图上编辑具有间接关系的两个模型?
我正在建立一个网站,该网站将以不同的语言提供用户提供的内容,并将有不同的实体,如文章、问题/答案、电子邮件模板等。以下DB模式在我看来是合乎逻辑的(描述我的DB的伪代码): 因此,总体思路很简单:Django admin:如何在单个管理视图上编辑具有间接关系的两个模型?,django,Django,我正在建立一个网站,该网站将以不同的语言提供用户提供的内容,并将有不同的实体,如文章、问题/答案、电子邮件模板等。以下DB模式在我看来是合乎逻辑的(描述我的DB的伪代码): 因此,总体思路很简单: 所有翻译都以统一的方式存储 单个项目的翻译指的是同一项目 每个需要翻译的实体都引用一个项目 现在我想创建一个管理视图,该视图将显示该项目及其所有翻译。不幸的是,我不能使用,因为它们只处理对象之间的直接关系 所以我需要自己制作一些类似内联线的东西,本质上,允许在同一个视图上编辑不同的模型。对于标准的管理
所以我需要自己制作一些类似内联线的东西,本质上,允许在同一个视图上编辑不同的模型。对于标准的管理模板和类(当然需要一些子类化),这可能吗?我发现,当然,扩展变更表单模板并在其中插入任何内容都很容易,但我不知道如何为扩展提供数据。管理类中似乎没有上下文……我是否必须从头开始创建整个视图?您可以使用
项来代替模型,这样您的模型就可以变成:
Translation
item (generic foreign key to Article, FaqCategory or FaqItem)
lang (language code)
title (string)
body (string)
Article
published (datetime)
visible (boolean)
item_id (foreign key to Item)
FaqCategory
item_id (foreign key to Item)
FaqItem
category_id (foreign key to FaqCategory)
item_id (foreign key to Item)
翻译
项目(文章、常见问题解答类别或常见问题解答项目的通用外键)
语言代码
标题(字符串)
正文(字符串)
文章
已发布(日期时间)
可见(布尔)
项目id(项目的外键)
常见问题分类
项目id(项目的外键)
常见问题解答项目
类别\u id(FAQ类别的外键)
项目id(项目的外键)
然后,您可以使用。这很有趣。那么,我如何理解一个特定的翻译对象是指一篇文章还是其他对象呢?换句话说,我如何实现这样的“通用外键”?我想我已经找到了你所说的。也许这会起作用,我会在一段时间内检查。非常感谢。
Translation
item (generic foreign key to Article, FaqCategory or FaqItem)
lang (language code)
title (string)
body (string)
Article
published (datetime)
visible (boolean)
item_id (foreign key to Item)
FaqCategory
item_id (foreign key to Item)
FaqItem
category_id (foreign key to FaqCategory)
item_id (foreign key to Item)