我正在尝试将recaptcha添加到我的评论表单中。我创建了一个帐户,并纠正了秘密/公钥。我遇到的问题是,当我提交表单时,views.py的响应为None(无),并且输入响应无效。
因此,我没有点击“我不是机器人”,无法创建我的评论。
这是在视图中验证Recaptcha的逻辑
Cart resultedCart;
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<Cart> query = criteriaBuilder.createQuery(Cart.class);
Root<Cart> cart = query.from(Cart.class);
Join<Cart, Customer> customer = cart.join("customer");
ParameterExpression<Long> idParameter = criteriaBuilder.parameter(Long.class);
query.select(cart).where(criteriaBuilder.equal(customer.get("id"), idParameter));
TypedQuery<Cart> typedQuery = entityManager.createQuery(query);
try {
resultedCart = typedQuery.setParameter(idParameter, id).getSingleResult();
} catch (NoResultException noResultException) {
throw new NoCartFoundException("The searched cart does not exist!", noResultException);
} finally {
entityManager.close();
}
return resultedCart;
这些是打印的变量
def create_review(request):
if request.method == 'POST':
''' Begin reCAPTCHA validation '''
recaptcha_response = request.POST.get('g-recaptcha-response')
url = 'https://www.google.com/recaptcha/api/siteverify'
values = {
'secret': settings.RECAPTCHA_PRIVATE_KEY,
'response': recaptcha_response
}
data = urllib.parse.urlencode(values).encode()
req = urllib.request.Request(url, data=data)
response = urllib.request.urlopen(req)
result = json.loads(response.read().decode())
''' End reCAPTCHA validation '''
print(values)
print(result)
if result['success']:
print(result['success'])
name = request.POST.get('name')
rating = request.POST.get('rating')
message = request.POST.get('message')
review = Testimonial(name=name, rating=rating, message=message)
review.save()
这是我的HTML表单中的HTML
{'secret': 'private_key', 'response': None}
{'success': False, 'error-codes': ['invalid-input-response']}
感谢您的帮助。谢谢。