首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django管理-在单管理界面中混合多个模型内联

Django管理-在单管理界面中混合多个模型内联
EN

Stack Overflow用户
提问于 2014-04-22 18:57:59
回答 1查看 3.1K关注 0票数 14

我有一个Django模型布局,如下所示:

代码语言:javascript
复制
class Author(models.Model):
    name = models.CharField(max_length=50, unique=True)

class Publication(models.Model):
    author = models.ForeignKey(Author)        

    #Some shared fields

    class Meta:
        abstract = True

class Book(Publication):
    #Book specific fields

class Poem(Publication):
    #Poem specific fields

一般来说,我想显示按作者列出的信息,并按一些信息(如pub_date )排序,这样最终用户就可以看到如下内容:

作者A:

  • 诗1
  • 诗2
  • 第一册
  • 诗3
  • 第二册

作者B:

  • 第一册
  • 第二册
  • 诗1
  • 诗2
  • 第3册

诸若此类。我可以知道如何在前端显示这些内容(我可以使用django多态,也可以简单地将author.book_set.all()和author.poem_set.all()组合到一个列表和排序中)。但我不知道如何在Admin站点中实现这一点。我希望结构与上面完全相同--所以当我点击作者A时,我会得到:

  • 诗1内嵌
  • 诗2内嵌
  • 第一册内嵌
  • 诗3内嵌
  • 第二册内嵌

如果我简单地将诗和书附加为TabularInlines,它们将被分离成单独的字段集,如下所示:

  • 诗1内嵌
  • 诗2内嵌
  • 诗3内嵌
  • 第一册内嵌
  • 第二册内嵌

但是,对于功能来说,重要的是将它们混合在一个字段集中(特定于另一个子类的字段要么是灰色的,要么不是每个内联的字段)。有人知道如何实现这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-30 05:24:05

嗯,似乎没有一种简单的方法可以做到这一点,所以我对django.contrib进行了深入研究,并构建了一个应用程序来处理这个问题: Django合并了Inline。如果它对任何人有用,可以在这里获得:

https://github.com/MattBroach/Django-Merged-Inlines

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23227984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档