是否可以隐藏“添加其他”链接,但保留“保存并继续编辑”按钮,以便可以添加其他行?
答案 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.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
使用它来获得所需的行为。
答案 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; }
为什么所有这些复杂的答案?