引用Django文档:
@sensitive_post_parameters('pass_word', 'credit_card_number')
def record_user_profile(request):
UserProfile.create(user=request.user,
password=request.POST['pass_word'],
credit_card=request.POST['credit_card_number'],
name=request.POST['name'])
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,pass_word和credit_card_number POST参数的值将被隐藏,并在错误报告内的请求表示中用星号(******)替换,而name参数的值将被公开。
要在错误报告中系统地隐藏请求的所有POST参数,请不要向sensitive_post_parameters装饰器提供任何参数:
@sensitive_post_parameters()
def my_view(request):
...
Run Code Online (Sandbox Code Playgroud)
作为测试,我将以下代码添加到了Django 1.6应用程序中:
views.py:
@sensitive_post_parameters('sensitive')
def sensitive(request):
if request.method == 'POST':
raise IntegrityError(unicode(timezone.now()))
return render(request, 'sensitive-test.html',
{'form': forms.SensitiveParamForm()})
Run Code Online (Sandbox Code Playgroud)
forms.py:
class SensitiveParamForm(forms.Form):
not_sensitive = forms.CharField(max_length=255)
sensitive = forms.CharField(max_length=255)
Run Code Online (Sandbox Code Playgroud)
当我通过提交此表单时POST,我可以sensitive在Sentry报告中看到两个字段(包括)的值清除为当天。
我在这里做错了什么?我正在使用Django 1.6和Raven 3.5.2。
在此先感谢您的帮助!