Django 管理中的嵌套内联?

新手上路,请多包涵

好吧,我有一个相当简单的设计。

 class Update(models.Model):
    pub_date = models.DateField()
    title = models.CharField(max_length=512)

class Post(models.Model):
    update = models.ForeignKey(Update)
    body = models.TextField()
    order = models.PositiveIntegerField(blank=True)

class Media(models.Model):
    post = models.ForeignKey(Post)
    thumb = models.ImageField(upload_to='frontpage')
    fullImagePath = models.ImageField(upload_to='frontpage')

是否有一种简单的方法允许用户在一个页面上创建所有更新?

想要 的是让用户能够进入管理界面,添加一个新的更新,然后在编辑更新时添加一个或多个帖子,每个帖子都有一个或多个媒体项目。此外,我希望用户能够在更新中对帖子重新排序。

我当前的尝试在 admin.py 中有以下内容:

 class MediaInline(admin.StackedInline):
    model = Media

class PostAdmin(admin.ModelAdmin):
    inlines = [MediaInline,]

这让用户添加一个新的 Post 项目,选择相关的 Update,向其添加 Media 项目,然后点击保存 - 这很好。但是没有办法在一个地方看到属于给定更新的所有帖子,这反过来意味着您不能在更新中对帖子进行排序。对于最终用户来说,这真的很令人困惑。

帮助?

原文由 Cody Hatch 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 531
2 个回答

截至目前,在 django.contrib.admin 中没有“内置”方式来嵌套内联(内联内联)。通过拥有自己的 ModelAdmin 和 InlineModelAdmin 子类来启用此类功能,可以实现类似的功能。请参阅这张票证上的补丁 http://code.djangoproject.com/ticket/9025 了解如何实现它的想法。您还需要提供自己的模板,这些模板将在顶级内联和子内联上进行嵌套迭代。

原文由 Vasil 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题