Это локальная переменная внутри detect_referral()
, и поэтому ее время жизни ограничено временем выполнения метода.До вызова метода и после его возврата локальные переменные просто не существуют.(Кажется, вы даже не вызываете метод, поэтому локальная переменная не существует во время выполнения вашей программы.)
Скорее всего, вам здесь не нужен статический метод.(Вам почти никогда не нужен статический метод в Python. Я не могу вспомнить, чтобы когда-либо использовал его.) Может быть, все, что вам нужно, это атрибут класса:
class ArticleController(SubbaseController):
referrer = request.META.get('HTTP_REFERRER', '')
def view(self):
c.referral = self.referrer
return render('/article.mako')
Обратите внимание, что тело класса выполняется один раз при определении классавремя.