私は小さなdjangoプロジェクトを持っていて、私のviews.pyの変数をtasks.pyに渡して変数を使ってタスクを実行しようとしていますが、定義されたエラー、IVEは、多くのソリューションは、他の質問で見アイブ試みたが、私はそれが仕事を得るように見えることはできませんここ 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
は、IVEはこれを試してみました。このエラーを得た: 'TypeError例外:RTI()は引数を取りません(1件) ' –
メソッドが' def rti(query) 'に更新されていないかのように聞こえます。タスクを実行しているプロセスを再起動したことを確認してください。 – Alasdair