Если на странице, которая уже использует {% csrf_token%}, нет формы, файл cookie не будет отправлен.Поэтому, как вы заметили, вы получите ошибку при попытке использовать Ajax на такой странице.Это приведет к нестабильному поведению, если у вас есть сайт со смесью страниц с различными комбинациями форм и сообщений AJAX.
Это уже было сообщено и исправлено: https://code.djangoproject.com/ticket/15354
Решение в патче, которое должно появиться с 1.3.1, это декоратор sure_cookie_csrf.Этот декоратор не существует в 1.3 или 1.2.5
Однако ждать не нужно.Просто добавьте эту строку в любое представление, в котором AJAX публикует форму CSRF:
request.META["CSRF_COOKIE_USED"] = True
Пример:
def calculator(request):
request.META["CSRF_COOKIE_USED"] = True
return render_to_response('calc.html', {'form': CalcForm()})
FYI - это именно то, что делает этот декоратор.