Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 20, 2011 17:31:01

mks
От:
Зарегистрирован: 2009-08-07
Сообщения: 80
Репутация: +  5  -
Профиль   Отправить e-mail  

CSS и шаблоны

Добрый день.
Я только начал изучать django, и столкнулся с проблемой подключения css файлов к шаблону. Делал по документации https://docs.djangoproject.com/en/dev/howto/static-files/#howto-static-files но почему то не работает. Проект запускаю из под сревера разработки django. В проекте есть единственное приложение guest_book с каталогами static и template с единственным шаблоном и css файлом. Если кому не трудно посмотрите что не так http://dl.dropbox.com/u/9133112/GuestBook.zip
Заранее спасибо.



Офлайн

#2 Сен. 20, 2011 18:42:56

apologize828
От:
Зарегистрирован: 2010-02-13
Сообщения: 223
Репутация: +  1  -
Профиль   Отправить e-mail  

Офлайн

#3 Сен. 22, 2011 19:22:49

maksaimer
От:
Зарегистрирован: 2011-09-22
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

CSS и шаблоны

у тебя в settings.py не определены переменные MEDIA_ROOT и MEDIA_URL.
Из вашего файла настроек видно, что путь к файлу sqlite лежит вот тут
'NAME': ‘D:\\PROJECTS\\PYTHON\\my_guest_book\\GuestBook\\sqlite.db’
проект соответственно лежит тут ‘D:\\PROJECTS\\PYTHON\\my_guest_book\\GuestBook\\’

еще положите папки static и template выше уровнем. они обычно лежать в проекте, а не в приложении.

поставь:
MEDIA_ROOT = ‘\\PROJECTS\\PYTHON\\my_guest_book\\GuestBook\\static\\’
обычно:
MEDIA_URL = 'http://127.0.0.1/static/'

у вас странное имя файла шаблона “base.djhtml”

В шаблоне поменяй строчку

<link rel=“stylesheet” type=“text/css” href=“{{ STATIC_URL }}base.css”>

на

<link rel=“stylesheet” type=“text/css” href=“{{ MEDIA_URL }}base.css”>



Офлайн

#4 Сен. 23, 2011 03:03:08

mks
От:
Зарегистрирован: 2009-08-07
Сообщения: 80
Репутация: +  5  -
Профиль   Отправить e-mail  

CSS и шаблоны

maksaimer
еще положите папки static и template выше уровнем. они обычно лежать в проекте, а не в приложении.
Я ориентировался на следующую фразу из документации (по ссылке из первого сообщения):
Basic usage

1. Put your static files somewhere that staticfiles will find them.

By default, this means within static/ subdirectories of apps in your INSTALLED_APPS.
maksaimer
у вас странное имя файла шаблона “base.djhtml”
Использую для работы Aptana studio, её встроенный редактор django шаблонов понимает их только с таким расширением. Насколько понял из документации самому django всё равно как называется файл, или я не прав ?
maksaimer
поставь:
MEDIA_ROOT = ‘\\PROJECTS\\PYTHON\\my_guest_book\\GuestBook\\static\\’
обычно:
MEDIA_URL = 'http://127.0.0.1/static/'
Вобщем заработало и без этого. Я не сразу заметил следующую фразу в документации:
If {{ STATIC_URL }} isn't working in your template, you're probably not using RequestContext when rendering the template.
Я использовал функцию render_to_response для генерации страницы, а она как я понял не подставляет значения переменной STATIC_URL. Если использовать RequestContext то всё сразу работает.
Также заработал способ под названием template tag. Что то типа такого:
    {% load static %}
<link rel="stylesheet" type="text/css" href="{% get_static_prefix %}css/guest_book.css">
Мне второй способ понравился больше. Было бы здорово услышать в 2-х словах о преимуществах и недостатках обоих.
И ещё при подобном включении css таблицы каким образом django распознаёт пути типа таких:
http://127.0.0.1/guest_book/static/css/guest_book.css
Ведь в файле urls никаких записей на этот счёт нет?
P.S.
http://dl.dropbox.com/u/9133112/guest_book.zip это новый проект, в старом я что то такое нахимичил что он не запускается :)
Всем спасибо за помощь и сочувствие.



Офлайн

#5 Сен. 23, 2011 06:14:35

maksaimer
От:
Зарегистрирован: 2011-09-22
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

CSS и шаблоны

По поводу static в шаблонах, я делаю вот так

return render_to_response(
'catalog/catalog-index.html',
context,
context_instance=RequestContext(request)
)
и тогда шаблон видит переменную STATIC_URL



Офлайн

#6 Сен. 23, 2011 11:58:33

apologize828
От:
Зарегистрирован: 2010-02-13
Сообщения: 223
Репутация: +  1  -
Профиль   Отправить e-mail  

CSS и шаблоны

правильнее делать так
будут вопросы, спрашивай.



Офлайн

#7 Сен. 23, 2011 12:44:55

mks
От:
Зарегистрирован: 2009-08-07
Сообщения: 80
Репутация: +  5  -
Профиль   Отправить e-mail  

CSS и шаблоны

apologize828 спасибо, буду разбираться.



Офлайн

#8 Сен. 24, 2011 00:09:35

mks
От:
Зарегистрирован: 2009-08-07
Сообщения: 80
Репутация: +  5  -
Профиль   Отправить e-mail  

CSS и шаблоны

apologize828 скажите а зачем класс администрирования модели выносить в отдельный файл admin.py? Так же не могу найти откуда он вызывается в вашем проекте или он использует системой django неявно ? Если так то где об этом можно почитать ?



Офлайн

#9 Сен. 24, 2011 08:55:20

apologize828
От:
Зарегистрирован: 2010-02-13
Сообщения: 223
Репутация: +  1  -
Профиль   Отправить e-mail  

CSS и шаблоны

скажите а зачем класс администрирования модели выносить в отдельный файл admin.py?
так принято в django.
Так же не могу найти откуда он вызывается в вашем проекте или он использует системой django неявно? Если так то где об этом можно почитать ?
urls.py ->admin.autodiscover().
Чтобы понять что происходит, открой и посмотри как реализован этот метод и думаю разберешься.
Сначала попробуй сам понять что происходит, затем уже прочитай правильно ли ты все понял: http://djbook.ru/ch06s05.html



Отредактировано (Сен. 24, 2011 09:08:15)

Офлайн

#10 Сен. 24, 2011 17:01:21

mks
От:
Зарегистрирован: 2009-08-07
Сообщения: 80
Репутация: +  5  -
Профиль   Отправить e-mail  

CSS и шаблоны

Спасибо, вроде разобрался.
Есть ещё вопрос:
после очередных экспериментов с проектом что то произошло (непонятно где) и во всех проектах в том числе и в вашем отвалился интерфейс администратора (выводится голый html без оформления) при этом в консоль идёт такой вывод:

Даже если создать новый пустой проект и там включить админку то всё тоже самое, хотя раньше рботало. Пробовал переустанавливать django, не помогает. :( С этим можно что то сделать ?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version