当用户使用 Django 评论发帖时,我想检查 IP 地址。
我可以轻松覆盖和自定义 django.comments 使用的表单,但我需要访问请求对象以将 IP 测试添加到其 clean()。是否有可能以干净的方式访问它?
另一种方法是在收到保存信号时检查 IP,但中止保存的唯一方法似乎是向用户返回代码 400。
最佳答案
评论框架提供了一个 comment_will_be_posted
信号:
http://docs.djangoproject.com/en/1.2/ref/contrib/comments/signals/#comment-will-be-posted
如果你在这个信号上注册,你的处理程序将被传递给(尚未保存的)评论对象和请求作为参数。如果您的处理程序返回 False,post_comment
View 将使用 CommentPostBadRequest
进行回答,就像它处理任何其他类型的错误(例如表单验证失败)一样。
关于python - 验证 django.contrib.comments 表单时如何访问请求对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3888322/