0

登録フォームにrecaptchaフィールドを追加して、Marcosガイドに従いました。

http://www.marcofucci.com/tumblelog/26/jul/2009/integrating-recaptcha-with-django/

登録アプリには、次のようなファイル「forms.py」があります。

from recaptcha import fields as captcha_field
from registration.forms import RegistrationFormUniqueEmail

class RecaptchaRegistrationForm(RegistrationFormUniqueEmail):
  recaptcha = captcha_field.ReCaptchaField()

そして、私のソリューション全体のurls.pyによって/accountsの下に含まれるurls.py:

from django.conf.urls.defaults import *
from registration.views import register
from forms import RecaptchaRegistrationForm
urlpatterns = patterns('users.views',
                       (r'^$', 'profile'),
                       url(r'^register/$', register, {'form_class': RecaptchaRegistrationForm}, name='registration_register'),
                      )

ここで、/ accounts / register /に移動すると、次のエラーメッセージが表示されます。

例外値:register()は少なくとも2つの非キーワード引数を取ります(1つ指定)

理由はわかりません。

4

3 に答える 3

2

要求している最初の非キーワード引数は request で、これは自動的に取得されます。

取得していない 2 番目の非キーワード引数は、認証バックエンドです。

すぐに始めるには、django-registration に付属するデフォルトのバックエンドを使用できます。これを自分で簡単にテストすることはできませんが、これでうまくいくはずです:

from django.conf.urls.defaults import *
from registration.views import register
from forms import RecaptchaRegistrationForm
from registration.backends.default import DefaultBackend
urlpatterns = patterns('trackerbase.users.views',
                       (r'^$', 'profile'),
                       url(r'^register/$', register, {
                       'backend': DefaultBackend,
                       'form_class': RecaptchaRegistrationForm,
                       }, name='registration_register'),
                       )

リンク先のファイルの95 行目から見てください。それを読むと、あなたが知る必要があるすべてのことがわかるはずです。

于 2009-12-14T12:18:58.097 に答える
0

recaptcha-clientを使用できます。段階的な手順については、k0001 の ブログに従うことができます。これはそのまま使用できます。

于 2009-12-14T12:52:22.693 に答える
-1

「backend」はオプションの引数ではありません。例外のスタック トレースを添付していただけますか? DefaultBackend を文字列として使用しようとしているようです。

于 2009-12-14T13:21:24.643 に答える