2

Django Guardian 在 admin.py、GroupManage 和 UserManage 中定义了两种形式:https ://github.com/lukaszb/django-guardian/blob/master/guardian/admin.py#L368

我想为这两种表单添加自动完成功能,我认为实现这一点的最佳方法是覆盖组和用户的字段小部件(我的第一次尝试使用 django autocomplete_light。)目标是不需要 fork django监护人。

所以在我的应用程序的models.py中,我添加了以下代码

GroupManage.__class__.group = forms.CharField(max_length=81,
    error_messages={'does_not_exist':
    "This group does not exist!"}, widget=ChoiceWidget(True))

我也尝试使用 setattr 无济于事。在 django shell 中,它的行为应该可以正常工作,但是当加载管理页面时,旧的组变量会恢复,并使用默认的 CharField 小部件。

4

1 回答 1

1

为类定义的字段存储在字典中base_fields

GroupManage.base_fields['group'] = forms.CharField(max_length=81,
error_messages={'does_not_exist':
"This group does not exist!"}, widget=ChoiceWidget(True))

有时,更改字段属性可能比替换整个字段更容易:

GroupManage.base_fields['group'].help_text = "New help text"
于 2012-08-07T18:48:03.267 回答