加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

我可以让Django管理员反映模型的层次结构吗?

发布时间:2020-12-20 13:33:15 所属栏目:Python 来源:网络整理
导读:假设Django应用程序具有通过一对多关系连接的一些模型: class Blog(models.Model): ...class Post(models.Model): blog = models.ForeignKey(Blog) ...class Comment(models.Model): post = models.ForeignKey(Post) ... 从概念上讲,它们形成了一个层次结构
假设Django应用程序具有通过一对多关系连接的一些模型:

class Blog(models.Model):
    ...

class Post(models.Model):
    blog = models.ForeignKey(Blog)
    ...

class Comment(models.Model):
    post = models.ForeignKey(Post)
    ...

从概念上讲,它们形成了一个层次结构,一个树状的结构.我希望Django管理员反映这一点.特别是:

>在职位变更清单中,每个职位都应有相应意见变更清单的链接;
>同样,帖子的编辑页面应该链接到右上角按钮区域的评论变更列表;
>当我打开相关评论列表时,它需要反映面包屑中的关系(类似于:帖子>“Hello world”>评论),理想情况下,还需要在URL(帖子/ 123 / comment /)中.

这当然也适用于层次结构的其他级别.

使用自定义list_display条目并使用?post__id =查询到注释更改列表,数字1非常简单.但这只不过是黑客攻击.一般来说,Django假设我的三个模型是独立的顶级实体.

有没有直接的方法来实现这一目标?我想我可以覆盖一堆模板和AdminModel方法,但也许有一个更好的解决方案,似乎是一种常见的情况?

解决方法

你确定你不只是看 Django Admin Inline Models吗?

自动管理员无法获取您的关系,因为在RDBS中可以存在任意数量的外键/一对一/多对多关系,而Django没有内置的自定义层次结构行为.

如果需要,您确实可以编辑自定义管理模板的面包屑.

对于关系,您可能也对django MPTT感兴趣,它允许创建分层模型实例.另见这个问题:Creating efficient database queries for hierarchical models (django)就此而言.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读