如何在django管理站点中添加readonly_field?

时间:2010-06-07 19:54:06

标签: django django-admin

我有以下问题:

我有两个模型:文章和评论,在评论中,我有parent = models.ForeignKey(Article)。我进行了设置,以便评论内嵌到ArticleAdmin(admin.ModelAdmin)CommentInline(admin.StackedInline)。此外,CommentInline中的所有字段都放入了readonly_fields。我想要做的是,在管理界面中,文章底部有一个按钮,上面写着“添加另一个Artcile”,点击该按钮后,您可以添加新注释。但是,我想将所有旧评论都只读(没有人可以在管理网站中编辑它)。因此,我想只附加一个只读设计。现在我有readonly_field设置,当我点击“添加另一个评论”时,它不允许我编辑任何内容。

任何人都有任何关于如何实现这一目标的建议?

非常感谢你的帮助!

2 个答案:

答案 0 :(得分:1)

您可以覆盖内联管理员的get_readonly_fields方法:

    def get_readonly_fields(self, request, obj=None):
        if obj:
            return ('readonly_field1',......)
        else:
            return self.readonly_fields

答案 1 :(得分:0)

如何制作一个显示评论的自定义模板,然后是表格的其余部分 这可能是一个很好的起点:http://docs.djangoproject.com/en/dev/ref/contrib/admin/#custom-template-options