2013-08-27 3 views
1

У меня есть два интерфейса «Pythonapplications» и «fv». в моем приложении fv - файл tasks.py, а в моем приложении frontend - файл views.py для отображения моих просмотров.вызов задачи сельдерея в методе просмотра Django?

Теперь у меня есть представление, где я могу выбрать некоторые параметры, получить их с запросом.POST. и теперь я хотел бы вызвать метод задачи FunctionRDynamic и передать параметры из моей формы вида.

Метод в views.py:

if request.method == 'POST': 
     form1 = dataproviderInstrumentForm(request.POST) 
     form2 = dynamicTimeseriesForm(request.POST) 

     if form1.is_valid() or form2.is_valid(): 
      filters = form2.cleaned_data['filter'] 
      estimator = form2.cleaned_data['estimator'] 
      windowSize = form2.cleaned_data['windowSize'] 

      FunctionRDynamic.delay(estimator, windowSize, timeseries) 

FunctionRDynamic мой метод в tasks.py файл в программе Одер, но этот метод не будет выполняться.

Для выполнения своих задач я использую сельдерей. Все написано на Python, и я использую Django как mvc framework.

У кого-нибудь есть предложения?

ответ

4

Из того, что я понял, это решение. При определении задач сельдерея сделать это:

@celery.task 
def file_transfer(password, source12, destination): 
    # Do stuffs with paramters 

Теперь в вашем views.py сделать это:

def test(View): 
    # Get the data from post 
    if request.method == 'POST': 
     name = request.POST['name'] 
     # And get all the variable you need for the tasks 

     # Now call the task like this 
     file_transfer.delay(name, 'test', 'test') 
+0

ТНХ для быстрого ответа, если я называю задачу без .delay - в качестве решения, я получаю " Не удалось подключить "ошибку в моем браузере, и я потерял соединение. – user2412771

+0

Да, вы должны использовать 'task_name.delay'. Извините за опечатку. – sachitad

+0

нормально, но я, если я вызываю задачу с .delay, ничего не делает. – user2412771

Смежные вопросы