Django:admin隐藏添加按钮

时间:2015-01-28 10:15:27

标签: django button admin add

是否可以隐藏“添加其他”链接,但保留“保存并继续编辑”按钮,以便可以添加其他行?

3 个答案:

答案 0 :(得分:0)

您的问题并不十分具体,但有一些方法可以改变管理员的行为而不会弄乱模板。

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

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行数后,将禁用“添加另一个”按钮。因此,如果您将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

答案 1 :(得分:0)

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

使用它来获得所需的行为。

答案 2 :(得分:0)

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

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; }

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