This is what I do ...

in settings.py

   # this is the directory containing settings.py
   PROJECT_DIR = os.path.realpath(os.path.dirname(__file__))

   # if templates are not found here look in app_name/templates
   TEMPLATE_DIRS = (os.path.join(PROJECT_DIR, 'templates/'),)

This makes my templates directory a sub-dir of the project dir and inside that there are other sub-dirs one for each app and one for the admin.

I don't really need one for the admin because django knows where the admin templates live inside the django tree.

However, there is one admin template I override so that I can personalise the admin. That is called base_site.html. It is ...

   PROJECT_DIR/templates/admin/base_site.html

It is the only admin template I change and it only contains ...

   {% extends "admin/base.html" %}
{# admin/base.html is in site-packages/django/contrib/admin/templates/admin #}
   {% load i18n %}
   {% block title %}{{ title }} | {% trans 'My site admin' %}{% endblock %}

   {% block branding %}
     <h1 id="site-name">{% trans 'My administration' %}</h1>
   {% endblock %}

Note the comment which indicates that it inherits from the django tree of admin templates.

How does django know to look at my base_site.html while it is processing the django tree of templates?

The answer is simple and can be found in your settings.py file here ...

   TEMPLATE_LOADERS = (
       'django.template.loaders.filesystem.Loader',
       'django.template.loaders.app_directories.Loader',
   )

If the filesystem loader is ahead of the app_directories loader, django looks in your project templates before its own. Here is the doc reference ...

http://docs.djangoproject.com/en/dev/ref/templates/api/#loader-types

Hope this helps

Mike




On 18/01/2011 12:26pm, Chen Xu wrote:
I did try this, and I tried again, but it still doesn't work.
Do I need to do something extra like quit the server, and restart again?
By the way I did try this too.

Now, I am totally lost.

Thanks

On Mon, Jan 17, 2011 at 3:17 AM, Vovk Donets <donets.vladi...@gmail.com
<mailto:donets.vladi...@gmail.com>> wrote:

    You must specify in the TEMPLATE_DIRS path to the dir where
    templates were placed, not abs path file
    So
    TEMPLATE_DIRS = (
    "/Users/xuchen81/Django/mysite/",

    )
    should work, coz' "In order to override one or more of them, first
    create an admin directory in your project's templates directory.
    This can be any of the directories you specified in TEMPLATE_DIRS
    
<http://docs.djangoproject.com/en/dev/ref/settings/#std:setting-TEMPLATE_DIRS>."

    2011/1/17 Chen Xu <xuche...@gmail.com <mailto:xuche...@gmail.com>>

        Hi, Django group:
        I am floowing the tutorial 1 on Django site, which is a poll
        application
        I have problem with overriding the admin page
        I copied   admin/base_site.html   from
        (django/contrib/admin/templates) to
        /Users/xuchen81/Django/mysite/admin/base_site.html

        and add this line
        "/Users/xuchen81/Django/mysite/admin/base_site.html"
        to TEMPLATE_DIRS in my settings.py file. It looks like the
        following:

        TEMPLATE_DIRS = (
        "/Users/xuchen81/Django/mysite/admin/base_site.html",
        )

        but the admin is just doesn't use this file, it still uses the
        default base_site.html.

        Could anyone please help me?

    --
    *Vovk Donets*
    python/django developer

    skype:  suunbeeam
    icq:      232490857
    mail: donets.vladi...@gmail.com <mailto:donets.vladi...@gmail.com>


    --
    You received this message because you are subscribed to the Google
    Groups "Django users" group.
    To post to this group, send email to django-users@googlegroups.com
    <mailto:django-users@googlegroups.com>.
    To unsubscribe from this group, send email to
    django-users+unsubscr...@googlegroups.com
    <mailto:django-users%2bunsubscr...@googlegroups.com>.
    For more options, visit this group at
    http://groups.google.com/group/django-users?hl=en.


--
You received this message because you are subscribed to the Google
Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en.

--
You received this message because you are subscribed to the Google Groups "Django 
users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to