0

私はこれにアプローチするための最良の方法を考えていました。私は自分のプロジェクトのベースとしてUserenaを使用しています。チーム名簿をデータベースにロードするか、名簿のテキストファイルを保持したいのですが、ユーザーがサインアップする前に、Webサイトはユーザーが名簿に登録されているかどうかを確認する必要があります。そうでない場合、彼らはサインアップすることができません。

4

1 に答える 1

0

userena.forms には SignupForm があります。フォーム検証で実装されている 3 つのクリーンなメソッドの 1 つを拡張します。これらは、clean_username、clean_email、および clean です。

たとえば、以下は clean_email メソッドです。メールがすでに使用されているかどうかはすでにチェックされています。有効な電子メールを含む名簿テーブルを維持します。そのため、チェックの別のレイヤーを追加できます。私はそれを最初の下に置きます。

def clean_email(self):
    """ Validate that the e-mail address is unique. """
    if User.objects.filter(email__iexact=self.cleaned_data['email']):
        raise forms.ValidationError(_('This email is already in use. Please supply a different email.'))
    return self.cleaned_data['email']

電子メールが別のユーザーによって使用されているかどうかを確認することと比較。名簿の場合、名簿テーブルに見つからない場合、エラーが発生します。

def clean_email(self):
    """ Validate that the e-mail address is unique. """
    if User.objects.filter(email__iexact=self.cleaned_data['email']):
        raise forms.ValidationError(_('This email is already in use. Please supply a different email.'))
    if not Roster.objects.filter(email__iexact=self.cleaned_data['email']):
        raise forms.ValidationError(_('You are not able to signup as you are not part of the Roster.'))
    return self.cleaned_data['email']

注: チェックを追加する場所に名簿モデルを必ずインポートしてください。

于 2012-10-31T14:56:20.380 に答える