Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django admin:如何在单个管理视图上编辑具有间接关系的两个模型?_Django - Fatal编程技术网

Django admin:如何在单个管理视图上编辑具有间接关系的两个模型?

Django admin:如何在单个管理视图上编辑具有间接关系的两个模型?,django,Django,我正在建立一个网站,该网站将以不同的语言提供用户提供的内容,并将有不同的实体,如文章、问题/答案、电子邮件模板等。以下DB模式在我看来是合乎逻辑的(描述我的DB的伪代码): 因此,总体思路很简单: 所有翻译都以统一的方式存储 单个项目的翻译指的是同一项目 每个需要翻译的实体都引用一个项目 现在我想创建一个管理视图,该视图将显示该项目及其所有翻译。不幸的是,我不能使用,因为它们只处理对象之间的直接关系 所以我需要自己制作一些类似内联线的东西,本质上,允许在同一个视图上编辑不同的模型。对于标准的管理

我正在建立一个网站,该网站将以不同的语言提供用户提供的内容,并将有不同的实体,如文章、问题/答案、电子邮件模板等。以下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)