Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django prefix on all generated URLs

Tags:

django-admin

My proxy (nginx public port 80) to django (gunicorn wsgi localhost port 8000) strips off the path to the application "/app" so requests for http://server/app/hello appears to django as /hello and requests for http://server/app/admin appears to django as /admin.

The problem is that the admin site generates output with absolute URLs such as <form action="/admin/"... in the login screen. So the user sees the admin login screen but it posts to http://server/admin which doesn't exist. (I kind of hoped it would use relative URLs and work at any location.)

What is the simplest way to get the admin pages to universally prepend "/app" like form action="/app/admin/" to all URLs it generates in page output? I am hoping for something built into Django like a simple define, and not having to create special filters then rewrite templates to use them, but I can't seem to find it.

like image 835
maxpolk Avatar asked May 29 '12 21:05

maxpolk


1 Answers

See documentation for FORCE_SCRIPT_NAME:

https://docs.djangoproject.com/en/dev/ref/settings/#force-script-name

Set that to be '/app' instead of default of None.

like image 153
Graham Dumpleton Avatar answered Oct 30 '22 20:10

Graham Dumpleton