title: Make celery wait for task to finish
body: <p>I want celery to wait for a specific task to finish, therefore I installed the celery-results-backend beside celery itself. But I don't understand how I have to write my task call in order to wait as I currently get the following error:</p>
  <pre><code>example_task() missing 1 required positional argument: 'user_pk'
  </code></pre>
  <p>views.py:</p>
  <pre><code>def example(request):
      user = request.user
      if request.method == 'GET':
          result = example_taks.apply_async(user_pk=user.pk)
          result_output = result.wait(timeout=None, interval=0.5)
          return redirect('something')
      else:
          args = {'user': user}
          return redirect(reverse('something'), args)
  </code></pre>
  <p>tasks.py:</p>
  <pre><code>def example_task(user_pk):
      user = User.objects.get(pk=user_pk)
      try:
         ...
  </code></pre>
  <p>previously I called the talks like that:</p>
  <pre><code>def example(request):
      user = request.user
      if request.method == 'GET':
      example_task.delay(request.user.pk)
      ...
  </code></pre>
  <p>This was working fine but did not wait for task to finish.</p>
  <p>If I Just do:</p>
  <pre><code>result = allocate_new_bch_address.apply_async(request.user.pk)
  </code></pre>
  <p>I also get a error:</p>
  <pre><code>example_task() argument after * must be an iterable, not UUID
  </code></pre>