Django:管理员隐藏添加按钮

Django : admin hide add button

是否可以隐藏 "Add another" link 但保留 "Save and continue editing" 按钮以便添加其他行?

你的问题不是很具体,但有一些方法可以在不破坏模板的情况下改变管理员的行为。

就我而言,我想强制用户先创建父模型,然后再将对象添加到内联。这是这样做的:

class SomethingInline(admin.TabularInline):
    model = Something
    extra = 0
    ...
    def get_max_num(self, request, obj=None, **kwargs):
        max = super(SomethingInline, self).get_max_num(request, obj, **kwargs)
        if obj:
            return max
        return 0

您可以使用类似于动态限制 max_num 的东西。一旦内联达到 max_num 行数,"Add Another" 按钮将被禁用。因此,如果动态设置 max_num 为 +1 当前内联对象的数量,则用户在保存前一次只能添加一个。

在这个例子中,你可以这样做:

    def get_max_num(self, request, obj=None, **kwargs):
        if obj:
            max = obj.something_set.count() + 1
        else:
            max = 1
        return max

InlineModelAdmin.extraInlineModelAdmin.max_numInlineModelAdmin.min_numInlineModelAdmin.get_max_num()https://docs.djangoproject.com/en/1.7/ref/contrib/admin/#django.contrib.admin.InlineModelAdmin.max_num 应该足以获得您想要的任何行为。

正在将 max_num 设置为 0。将禁用添加新对象。

class ItemInline(admin.TabularInline):
    model = Item
    max_num = 0

将 extra 设置为 1,将 max_num 设置为 3。这将产生一个新行。还有一个添加按钮,当添加 3 个项目时,该按钮将消失。

class ItemInline(admin.TabularInline):
    model = Item
    extra = 1
    max_num = 3

试用它以获得所需的行为。

我找到了解决方案,媒体中有一个 css 文件 class :

class Essai_TemperatureInline(admin.TabularInline):

model = Essai_Temperature
extra= 2

class Media:
    css = { "all" : ("/static/css/java.css",) }

和 css 文件:

.inline-related tr.add-row a { display: none; }

为什么所有这些复杂的答案?