0

ユーザー名の代わりに電子メールでログインするように Django 1.5 (djangoproject docs から) 認証をカスタマイズしましたが、Django-registration 1.0 を使用してユーザーを登録しています。

ユーザーが登録時に電子メールとパスワードを入力するだけで済むように、django 登録からユーザー名フィールドを削除するにはどうすればよいですか。

よろしくお願いします。ヤニフ M

4

3 に答える 3

2

これで始められるはずです。RegistrationForm のサブクラスである独自のフォームを作成します。

forms.py で

from registration.forms import RegistrationForm

class MyRegistrationForm(RegistrationForm):

    # Override RegistrationForm
    def __init__(self, *args, **kwargs):
        super(RegistrationForm, self).__init__(*args, **kwargs)
        self.fields.pop('username')

views.py で

from registration.views import RegistrationView

from yourapp.forms import MyRegistrationForm


class MyRegistrationView(RegistrationView):
    form_class = MyRegistrationForm

urls.py で

url(r'^accounts/register/$', MyRegistrationView.as_view(),
    name='registration'),
于 2013-11-15T06:37:37.413 に答える
0

デフォルトに基づいてカスタム フォーム クラスを作成し、RegistrationFormそのクラスをRegistrationViewビューで使用できます。

于 2013-06-21T10:55:49.813 に答える
0

そのままでは、複雑です。必要がある:

  • dr-1.0 では、models.py は User モデルに「username」フィールドがあると想定するため、このパッチを適用します。
  • registration/backends/default/views.py をコピー/貼り付け/編集して、独自の「バックエンド」を作成します
  • registration/forms.py から登録フォームをコピー/貼り付け/編集します。
  • ほとんどの場合、登録ビューを変更せずに使用できます
于 2013-10-28T20:34:45.330 に答える