Django Admin - 使以前的内联表单不可编辑

时间:2013-08-31 06:12:49

标签: python django python-2.7 django-admin

我在Django Admin中有一个内联表单。当用户编辑模型表单时,还会列出所有先前填充的内联表单。我只是想让用户查看以前填充的内联表单并使其无法编辑。但是用户可以添加另一个表单。

我尝试使用editable = False,但这不允许我填写新表单。

enter image description here

1 个答案:

答案 0 :(得分:1)

我认为https://code.djangoproject.com/ticket/15602阻止你做你想做的事。

如果你将它分成两个内联管理员,一个用于列表,一个用于添加,你可以实现你想要的,但我不喜欢这个解决方案:

class CommentListInline(admin.TabularInline):
    model = Comment
    fields = ('comment',)
    readonly_fields = fields
    extra = 0
    can_delete = False

    def has_add_permission(self, request):
        return False


class CommentAddInline(admin.TabularInline):
    model = Comment
    fields = ('comment',)
    extra = 1
    can_delete = False

    def has_change_permission(self, request, obj=None):
        return False


class PageAdmin(admin.ModelAdmin):
    inlines = [CommentListInline, CommentAddInline]