私のDjango-allauthサインアップフォームで、crispフォームを使用してnoRecaptchaフォームを取得できました。 Using this answerDjango Reoder norecaptchaはallauthに登録しました。新鮮なフォームを使用しています
フォームは、フォームがdjango-allauthに含まれていてレイアウトを指定していないときに、クリスピーフォームのレイアウトにフィールドオーダーを強制することに関するものです。だから自分のカスタムフォームでサインアップフォームをオーバーライドするとき、私はレイアウトを指定しようとしましたが、それが認識されているかどうかはわかりません。
は、他の記事の回答を組み合わせる:
from django import forms
from neatf.users.models import User
from nocaptcha_recaptcha.fields import NoReCaptchaField
class AllauthSignupForm(forms.Form):
captcha = NoReCaptchaField()
class Meta:
model = User
fields = ['username', 'email', 'password1', 'password2', 'captcha']
field_order = ['username', 'email', 'password1', 'password2',
'captcha']
def signup(self, request, user):
""" Required, or else it throws deprecation warnings """
pass
私は私が間違ったモデルが参照しているか、それは単に無視だと確信しています。 noRecaptchaフィールドは、私が好きな場所の底ではなく、フォームの上部にうっかりと座っているだけです。
私もFormHelperを使ってみましたが、明らかに間違っている必要があります。
helper = FormHelper()
helper.form_class = '.form-inline'
helper.field_template = 'bootstrap4/layout/inline_field.html'
helper.layout = Layout(
Fieldset('Contact data', 'username', 'email',),
Fieldset('Password', 'password1', 'password2', 'captcha'))
私はむしろテンプレートを書き直したいと思いますし、レイアウトを上書きする方法があることを願っています。
私はdjango-allauth(0.31.0)を手に入れました。あなたのコードを使ってrecaptchaを電子メールの後ろに移動させました(注文を表示します:username、email、recaptcha、password1、password2)。改良だが、キャプチャを最後まで強制する方法は不明だ。ありがとう – wedward