给出TypeError'tuple'对象的Django messages.success是不可调用的

时间:2015-06-18 08:49:37

标签: python django

我正在使用Django == 1.6并且我在使用django消息时遇到了一些奇怪的错误

我得到的错误是:

TypeError 'tuple' object is not callable

据报道,问题在于:

        messages.success(request, 'whatever message I am trying to display')

我从4个不同的视图中收到此错误。其中一些视图位于不同的应用程序中。

 in some_app.views
 ...
 from django.contrib import messages
 ...

 def foo(request):
    ...
    if not worker.profile_complete and worker.is_profile_complete:
        worker.profile_complete = True
        worker.save()
        messages.success(request, 'Your profile is now complete')
        success_url = reverse('worker_complete')




 in some_other_app.views
 ...
 from django.contrib import messages
 ...

 def bar(request):
    ....
    form = VerificationForm(data=request.REQUEST or None)
    if form.is_valid():
        if request.user.verification.code == form.cleaned_data['code'].upper():
            verification.verified = timezone.now()
            verification.save()
            messages.success(request, 'Your account has been verified via SMS')

这个错误让我很难过。我有时只能在生产服务器上重现它。我无法在本地重现它。

非常感谢任何想法。

此处提供回溯:http://pastebin.com/efTW1EhP

1 个答案:

答案 0 :(得分:2)

检查以确保没有用代码库中某处的元组覆盖messages.success。例如,您可能已经完成了:

messages.success = (request, 'success message')

这可能是您项目中的任何位置,而不仅仅是您在上面显示的视图中。