我正在尝试将验证码添加到我的 Django 表单中。我尝试了三个不同的库,但没有一个对我有用,我不知道我做错了什么。 这是我最后一次尝试:
我用了this图书馆。
我的forms.py
看起来像这样:
class NewUserForm(UserCreationForm):
email = forms.EmailField(required=True)
captcha = NoReCaptchaField()
class Meta:
model = User
fields = ("username", "email", "password1", "password2")
def save(self, commit=True):
user = super(NewUserForm, self).save(commit=False)
user.email = self.cleaned_data['email']
if commit:
user.save()
return user
这是 urls.py
: path("login/", views.login_request, name="login")
.
这是前端:login.html
: <script src="https://www.google.com/recaptcha/api.js" async defer></script>
我更新了我的 settings.py
文件,因此错误一定不存在。
最佳答案
您可以使用 django-simple-captcha .
- 安装
pip install django-simple-captcha
- 将验证码添加到您的 settings.py 中的
INSTALLED_APPS
- 运行
python manage.py migrate
- 向您的 urls.py 添加一个条目:
urlpatterns += [
path(r'captcha/', include('captcha.urls')),
]
在 forms.py 中:
from django import forms
from captcha.fields import CaptchaField
class YourForm(forms.Form):
captcha = CaptchaField()
在模板中:
<form action="/your-name/" method="post">
{% csrf_token %}
{{ form.captcha }}
<input type="submit" value="Submit">
</form>
关于python - 以 django 形式包含验证码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54888907/