python - 在 Django 管理员中嵌套内联?

标签 python python-3.x django django-models django-admin

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

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,]

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

帮助?

最佳答案

到目前为止,在 django.contrib.admin 中没有“内置”方式来嵌套内联(内联内联)。通过拥有自己的 ModelAdmin 和 InlineModelAdmin 子类来启用这种功能,可以实现这样的功能。查看此票证上的补丁 http://code.djangoproject.com/ticket/9025有关如何实现这一点的想法。您还需要提供自己的模板,这些模板将在顶级内联和子内联上进行嵌套迭代。

关于python - 在 Django 管理员中嵌套内联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3681258/

相关文章:

python - 如何使用pytest为斐波那契制作测试类或函数?

django - 如何在 TextFields 中保存链接

javascript - AJAX 调用后隐藏 jQuery 中的按钮

python - 分解数组数组-(Dataframe)pySpark

python - 将默认 Python 版本从 2.4 更改为 2.6

python - 可以 xs :anyURI contain square brackets in XSD?

python - django多进程问题

c++ - PyRun_SimpleString 因 def foo() : 而失败

python - 按条件从不同列和索引获取值

python-3.x - 从数据框中过滤行