ユーザーがメールアドレスを記入し、メールがデータベースに保存される招待機能を実装したいと考えています。彼らが再度電子メールアドレスを記入して招待状を要求すると、別のフォーム(ReferForm)にリダイレクトして、他のフォームを参照できるようにする必要があります。メールがある場合に別のフォームにリダイレクト
は、ここで私は、私は電子メールの有無を照会しているセーブ機能フォーム内のエラーを取得する私のコード
class InviteForm(forms.Form):
email = forms.EmailField(label=_("E-mail"), required=True)
def save(self, email):
print('email', email)
print ('############')
if (Invitation.objects.get(email=email)):
return True
invitation = Invitation.objects.create(email=email)
return invitation
class RequestInvitation(FormView):
template_name = 'home.html'
form_class = InviteForm
def form_valid(self, form):
email = form.cleaned_data.get('email')
invite_instance = form.save(email)
if invite_instance == True:
return HttpResponseRedirect('/refer-form')
invite_instance.invited_by_email_address = self.request.user
invite_instance.custom_invite_code = get_custom_invite_code()
invite_instance.save()
messages.success(self.request, '{0} has been invited'.format(email))
return HttpResponseRedirect('/')
def form_invalid(self, form):
# messages.error(self.request, '{0}'.format(form.errors))
return self.render_to_response(self.get_context_data(form=form))
です。しかし、私はエラーが発生します
招待照合クエリは存在しません。
私はすでにそれをしましたが、私はいつも偽に作成されます。それは私がmodelFormを使用していないためです – pythonBeginner
あなたは電子メールが既にdbに存在する場合にfalseを作成します。 – user3148949