Django端点500错误

时间:2014-03-28 14:52:18

标签: ajax django permissions django-views csrf

我在模板中调用端点:

var postdata = { 'csrfmiddlewaretoken': '{{ csrf_token }}' }
$.post("reconcile/" + transaction_id, postdata);

以下是观点:

def reconcile_transaction(request, slug, id):
        society = get_object_or_404(Society, slug=slug)
        try:
            society.members.get(pk=request.user.id)
        except society.DoesNotExist:
            return HttpResponseRedirect('/')

        account = society.account
        transaction = Transaction.objects.filter(id=id)     
        print(transaction.get_stubbed_time)

我在print语句中遇到500错误。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

filter()返回QuerySet(基本上是模型实例列表)。而且,由于get_stubbed_time上没有QuerySet属性,因此您在尝试从查询集中获取AttributeError属性时获得get_stubbed_time。并且,由于您没有以DEBUG模式运行 - 您看到的是500。

您需要使用get()代替:

transaction = Transaction.objects.get(id=id)     
print(transaction.get_stubbed_time)

另外,保持DEBUG=True处于开发状态 - 快速了解错误的根本原因有很大帮助。但是,不要忘记to turn it off in production

希望有所帮助。