Forums

django admin styling lost

I deleted and installed an app using the manual setup for django. I edited the static file location both in settings.py and in the web tab to find my files and it works fine. The admin had styling, but now doesn't -- it seems to be looking in the PA static location for the files. How do I fix it so the admin looks where my static files are?

You have two choices

1) the slightly hacky choice is to create an extra static files entry that points at the system-installed admin media folder:

/static/admin/ --> /usr/local/lib/python3.3/dist-packages/django/contrib/admin/static/admin

2) the way you're really supposed to do it is to use the Django collectstatic command:

python3 manage.py collectstatic

Which will gather up all the static files from all your INSTALLED_APPS (including the admin app) and put them into the static folder you defined as STATIC_ROOT in your settings.py. Have a look in the Django docs for more info.

Thanks. I'll give it a shot!

No, I ran collectstatic and it didn't work

Got much output like this

Copying '/usr/local/lib/python3.3/dist-packages/django/contrib/admin/static/admin/img/tooltag-add.gif'
Copying '/usr/local/lib/python3.3/dist-packages/django/contrib/admin/static/admin/img/gis/move_vertex_on.png'
Copying '/usr/local/lib/python3.3/dist-packages/django/contrib/admin/static/admin/img/gis/move_vertex_off.png'

But it doesn't seem to find the css

<title>Site administration | Django site admin</title>
<link rel="stylesheet" type="text/css" href="/static/admin/css/base.css" />
<link rel="stylesheet" type="text/css" href="/static/admin/css/dashboard.css" />
<!--[if lte IE 7]><link rel="stylesheet" type="text/css" href="/static/admin/css/ie.css" /><![endif]-->   
<script type="text/javascript">window.__admin_media_prefix__ = "/static/admin/";</script>

Any clue? — My app static files seem to work fine.

UPDATE: Ah, collectstatic had copied the files to the root level of my app, not into the static folder (does one need to be in the static folder when one runs collectstatic?)

Moved it by hand, and it works fine.

By the way, just out of curiosity, how does one actually DO

/static/admin/ --> /usr/local/lib/python3.3/dist-packages/django/contrib/admin/static/admin

That is, how does that translate into actual code?

It's not translated to code, it's a description of the entries you put into the static files section on your web app configuration page.

Adding /static/admin/ to a URL field fixes the problem

Harry's comment fixed the problem(the 1st choice) but there's no need to run collectstatic because most likely django.contrib.admin is already in your settings.py by django 1.9 and above.

The real problem is that the django admin templates deep in the sitepackages folder cannot reach the css files thru its url because it is not yet existing here in pythonanywhere.

That's why you need to add:

  1. another URL in the Static files: located inside the Web beside Console, Files, and Databases
  2. put /static/admin/ in the value of URL and for the path, it depends on where your django admin static files are located. The common path is this one (if you're using a virtual envrionment) /home/<username>/.virtualenvs/<virtrualenvname>/lib/python3.6/site-packages/django/contrib/admin/static/admin
  3. If you aren't using a virtual environment /usr/local/lib/python3.3/dist-packages/django/contrib/admin/static/admin as what harry placed here in the first reply comment is the path.

I've uploaded a picture to better understand the how to. Hope it helps! No coding was necessary.

Here is the image for the solution

That will definitely work, and it was our recommended solution for some time. But because collectstatic copies all of the stuff from inside the virtualenv into your project's static files dir, it means that you get one fewer line of config in the static files table, which keeps things just that little bit simpler -- so we recommend that nowadays, just to reduce confusion.

Thank you Royce!!!

Thank you Royce!!!

i'll love to have a good friends who are programmers on me to inbox me. Thanks

Thanks royce236 Works perfect

Worked like a charm, Royce ... Thanks :)

Thanks Royce!! It worked for me when I was using a VirtualEnv but didn't work when I was not using VENV. Anyways Thanks!!!!

i am tryed in all the above givened ways but i cont styled my admin page

What do you see in your browser dev tools? Where is it looking for css and other static files?

Thank u so much, royce236! This is incredible!

@ravikiran9912 try using some third party app for admin interface like Grappelli.

Thanks Royce! - it works - thanks to image it was easy to fix.

it didn't worked for me, i've done exactly the way is indicated... someone knows if it could be another problem:? im in an virtual env

What do you see in your browser dev tools? Where is it looking for css and other static files?

Thanks Royce! - it works - thanks to image it was easy to fix.

Thank you!!!

Thanks Worked :))))

/home/{username}/.virtualenvs/{virtualname}/lib/python3.10/site-packages/django/contrib/admin/static/admin

this solves my problem here after I add the static path. take note of the DOT(.) before virtualenvs coz when I tried their above solution I was getting an error, then I check my path manually it got a dot and VIOLA!

We still recommend using collectstatic management command, as it would copy required files into your project static dir, thus making the setup cleaner.