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.extra
、InlineModelAdmin.max_num
、InlineModelAdmin.min_num
和 InlineModelAdmin.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; }
为什么所有这些复杂的答案?
是否可以隐藏 "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.extra
、InlineModelAdmin.max_num
、InlineModelAdmin.min_num
和 InlineModelAdmin.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; }
为什么所有这些复杂的答案?