0

私は UserCreationForm からの登録フォームを持っています。これを次のようにオーバーライドしました。

from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User
from django import forms
import re
from django.core.exceptions import ObjectDoesNotExist

class UserCreationForm(UserCreationForm):


    class Meta:
        model = User
        fields = ('first_name', 'last_name', 'username',)

    error_messages = {
        'duplicate_username': _("A user with that email already exists."),
        'password_mismatch': _("The two password fields didn't match."),
    }    

    username = forms.EmailField(label='Email', max_length=250, unique=True)

    def save(self, commit=True):
        user = super(UserCreationForm, self).save(commit=False)
        user.email = user.username
        user.save()
        return user

しかし、私はエラーが発生していました:

NameError at /admin/
name '_' is not defined

だから、私は輸入しなければならなかった

from django.utils.translation import gettext as _

そして、それはその問題を解決しました。しかし今、それが修正された後 (私は..それが最初の問題の解決策だったと思います)、別のエラーが発生しています:

TypeError at /admin/
__init__() got an unexpected keyword argument 'unique'

から「ユニーク」を削除するとEmailField、すべて正常に動作します。unique=trueでは、フォームからを削除しますか? 削除しても、各ユーザー名(ここではその電子メール)に対して常に一意になりますか?そしてもう1つfrom django.utils.translation import gettext as _、エラー名に適した解決策はありました'_' is not definedか??? 私はジャンゴの初心者です。どんな助けでも大歓迎です!ありがとうございました。

4

1 に答える 1