我在nginx / uWSGI上运行Django 1.8站点。
在./manage.py runserver
上,一切都按预期工作,但当我将其移至生产时,某些视图会返回HTTP 500错误。
查看uWSGI日志,我得到类似的内容:
** View: booking_accept_view 6zN6
[pid: 1959|app: 0|req: 7/7] xxx.xxx.xxx.xxx () {56 vars in 1339 bytes}
[Thu Jun 11 10:00:39 2015] GET /tidsbestilling/admin-accept/6zN6/ =>
generated 27 bytes in 28 msecs (HTTP/1.1 500)
6 headers in 226 bytes (2 switches on core 0)
所以这里帮助不大。
nginx访问日志:
xxx.xxx.xxx.xxx - - [11/Jun/2015:10:00:39 +0200]
"GET /tidsbestilling/admin-accept/6zN6/ HTTP/1.1" 500 38
"https://example.com/tidsbestilling/admin-details/6zN6/"
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/600.7.10
(KHTML, like Gecko) Version/8.0.7 Safari/600.7.10"
nginx错误日志中没有条目。
我尝试将其封闭在try-except
块中,但我从中得不到任何信息。
我的观点如下:
def booking_admin_accept_view(request, booking_uid):
print("** View: booking_accept_view", booking_uid)
user = request.user
if not (user is not None and user.is_authenticated() and user.is_active):
return HttpResponseRedirect(reverse('booking_admin_login_view'))
try:
booking = Booking.objects.get(uid=booking_uid)
booking.status = 'accepted'
booking.save()
send_sms(booking)
return HttpResponseRedirect(reverse('booking_admin_details_view', args=(booking_uid,)))
except(Exception, e):
logging.exception(e)
booking.save()
已执行,如果我执行了./manage.py shell
我可以执行send_sms(booking)
,但也可以,但视图不会那么远。
所以我的问题是:如何获得有关出错的更多信息?我真的必须在DEBUG模式下运行才能获取信息吗?
答案 0 :(得分:0)
将user = request.user
也放在try-catch块中。
尝试记录请求以检查标头。