1

django-registrationを使用しています。'django.contrib.auth.forms'のAuthenticationFormを更新したいのですが。具体的には、'attrs' dictを渡して、いくつかの属性を追加したいと思います。djangoに付属のフォームを更新するにはどうすればよいですか?

4

2 に答える 2

2

authに付属するビューを使用して、formパラメーターを独自のフォームでオーバーライドできます。

django.contrib.auth.views.login(request[, template_name, redirect_field_name, authentication_form])

詳細はこちら

于 2011-08-07T22:42:29.163 に答える
1

標準的な方法は、AuthenticationFormをサブクラス化し、コンストラクターでattrsを変更し、フォームをログインビューに渡して、urls.pyに新しいエントリを書き込むことです。

これは悪夢です。フィールドにhtml属性を追加するには、Pythonサブクラス化を使用し、djangoのフォームメタクラスがどのように機能するか(self.fields['field'].widget.attrsだけでなくself.field.widget.attrs)、正規表現(urls.pyの場合)、djangoのurls.pyは機能し(オーバーライド行を前後に配置する必要がありますinclude('django.contrib.auth.urls')か?)、認証フォームと認証ビューがどこからインポートされたかを知ることができます。

そして今、「コマーシャルブレイク」:あなたのタスクにはhttp://pypi.python.org/pypi/django-widget-tweaksを使用してください;)

于 2011-08-07T23:00:07.813 に答える