我有一個小型django項目,我試圖從我的views.py中傳遞一個變量到tasks.py並使用該變量運行一個任務,但我得到的名稱不是定義的錯誤,我已經嘗試了許多解決方案,我見過的其他問題,但我似乎無法得到它的工作NameError:未定義全局名稱'query'
這裏是我的views.py
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.shortcuts import render, loader
from django.template import Context
from django.http import HttpResponse
import json
import requests
from tasks import rti
def index(request):
return render(request, 'bus/index.html')
def search(request):
query = request.GET.get('q')
t = loader.get_template('bus/search.html')
c = Context({ 'query': query,})
rti()
return HttpResponse(t.render(c))
這裏是我的tasks.py
from background_task import background
import time
@background(schedule=1)
def rti():
timeout = time.time() + 60 * 15
while time.time() < timeout:
from views import search
dblink = '*apiurl*' + str(query) + '&format=json'
savelink = 'bus/static/bus/stop' + str(query)+ '.json'
r = requests.get(dblink)
jsondata = json.loads(r.text)
with open(savelink, 'w') as f:
json.dump(jsondata, f)
這裏是追溯:
Traceback (most recent call last):
File "/Users/dylankilkenny/dev/python/test2/lib/python2.7/site-packages/background_task/tasks.py", line 49, in bg_runner
func(*args, **kwargs)
File "/Users/dylankilkenny/dev/python/test2/mysite/bus/tasks.py", line 9, in rti
from views import search
NameError: global name 'query' is not defined
香港專業教育學院嘗試這樣做,得到這個錯誤:'類型錯誤:RTI()不帶任何參數(1給出)' –
這聽起來好像該方法尚未更新爲「def rti(query)」。確保您已重新啓動正在運行任務的進程。 – Alasdair