I had a long running process (data import) and encountered 504 Gateway Timeout error. I use Nginx / uwsgi pair to serve my Django app.
After doing some research it turned out that the problem is in uwsgi_read_timeout directive. Directive sets the amount of time for upstream to wait for a uwsgi process to send response data. By default the value is 60 seconds. Set it to bigger value if you have a long running process.