2

Django Guardianには、admin.pyで定義されているGroupManageとUserManageの2つのフォームがあります:https ://github.com/lukaszb/django-guardian/blob/master/guardian/admin.py#L368

これらの2つのフォームにオートコンプリートを追加したいと思います。これを実現するための最善の方法は、グループとユーザーのフィールドウィジェットを上書きすることです(最初の試みではdjango autocomplete_lightを使用します)。目標は、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シェルでは、これが機能しているように動作しますが、管理ページが読み込まれると、デフォルトの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 に答える