
Django
在Django 1.7中,内联表单是一种方便的方式来处理与主要模型相关联的多个模型。然而,有时我们可能希望从内联表单中删除“添加”按钮,以防止用户添加额外的关联模型。本文将向您展示如何在Django 1.7中实现这一点,并提供一个案例代码来说明。
在Django中,内联表单是通过InlineModelAdmin类来定义的。默认情况下,内联表单会显示一个“添加”按钮,允许用户添加新的关联模型。要删除这个按钮,我们需要自定义内联表单类,并覆盖has_add_permission方法。首先,让我们创建一个内联表单类,命名为MyInlineForm。在这个类中,我们将覆盖has_add_permission方法并返回False,以禁用“添加”按钮。Pythonfrom Django import formsfrom Django.contrib import adminfrom Django.contrib.admin import TabularInlineclass MyInlineForm(forms.ModelForm): def has_add_permission(self, request): return Falseclass MyInline(admin.TabularInline): form = MyInlineForm model = MyModel在上面的代码中,我们创建了一个名为
MyInlineForm的内联表单类,并覆盖了has_add_permission方法。该方法接收request参数,我们可以在这里根据需要进行自定义权限检查。在这个示例中,我们简单地返回了False,以禁用“添加”按钮。接下来,我们将MyInlineForm类应用到我们的内联表单中。在我们的主要模型的admin.py文件中,我们可以将MyInline类添加到inlines列表中,如下所示:Pythonfrom Django.contrib import adminclass MyModelAdmin(admin.ModelAdmin): inlines = [MyInline]现在,我们的内联表单中将不再显示“添加”按钮。案例代码:
Pythonfrom Django import formsfrom Django.contrib import adminfrom Django.contrib.admin import TabularInlineclass MyInlineForm(forms.ModelForm): def has_add_permission(self, request): return Falseclass MyInline(admin.TabularInline): form = MyInlineForm model = MyModelclass MyModelAdmin(admin.ModelAdmin): inlines = [MyInline]在上面的案例代码中,我们创建了一个名为
MyInlineForm的内联表单类,并覆盖了has_add_permission方法。我们还创建了一个名为MyInline的内联表单,并将MyInlineForm应用到其中。最后,我们将MyInline添加到inlines列表中,以在主要模型的管理界面中显示内联表单。通过使用以上方法,我们可以很容易地在Django 1.7中从内联表单中删除“添加”按钮。这对于需要限制用户添加额外关联模型的情况非常有用。Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号