2017-04-13 165 views
0

我想重写我的admin.py中的get_form方法。我写了这个代码:Django Admin - get_form覆盖

def get_form(self, request, obj=None, **kwargs): 
    form = super(InactiveSiteAdmin, self).get_form(request, obj, **kwargs) 
    form.base_fields['category'].widget.can_add_related = False 
    form.base_fields['subcategory'].widget.can_add_related = False 
    form.base_fields['category1'].widget.can_add_related = False 
    ... 
    ... 
    form.base_fields['category'].widget.can_change_related = False 
    return form 

是否有可能覆盖所有领域的一个行?:

form.base_fields[ALL_FIELDS].widget.can_add_related = False 

回答

1

看看循环在他们的作品,喜欢的东西:

def get_form(self, request, obj=None, **kwargs): 
    form = super(InactiveSiteAdmin, self).get_form(request, obj, **kwargs) 
    for field in form.base_fields.keys(): 
     form.base_fields[field].widget.can_add_related = False 
    return form