Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Вопрос начинающего: доступ к директории /media [RSS Feed]

#1 Апрель 5, 2010 07:17:11

macgera
От:
Зарегистрирован: 2009-12-19
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос начинающего: доступ к директории /media

Здравствуйте уважаемые форумчане.

у меня совсем начинающий вопрос.. так как документацию не понял.. или не до конца понял.

Установлена Django 1.1.1

создаю новый проджект, django-admin.py …….

там делаю файлик views.py ну и в общем кое-как сооружаю страничку. Только вот к темплейту не могу привязать css файлы и картинки и т.д. Не могу понять почему не открывается дирекотрия /media/

Сервер встроенный manage.py runserver

urls.py

from django.conf.urls.defaults import *
from views import main_page

urlpatterns = patterns('',
('^$', main_page),
(r'^media/(?P.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),
)
settings.py
# Django settings for mac project.
import os
def rel(*x):
return os.path.join(os.path.abspath(os.path.dirname(__file__)), *x)

DEBUG = True
TEMPLATE_DEBUG = DEBUG

ADMINS = (
# ('Your Name', 'your_email@domain.com'),
)

MANAGERS = ADMINS

DATABASE_ENGINE = '' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
DATABASE_NAME = '' # Or path to database file if using sqlite3.
DATABASE_USER = '' # Not used with sqlite3.
DATABASE_PASSWORD = '' # Not used with sqlite3.
DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3.

TIME_ZONE = 'America/Chicago'

LANGUAGE_CODE = 'en-us'

SITE_ID = 1

USE_I18N = True

MEDIA_ROOT = rel('media')

MEDIA_URL = '/media/'

ADMIN_MEDIA_PREFIX = '/media/admin/'

SECRET_KEY = '70@bh28!o#h=wk&1x*uur-w^hi3p$@epj(umtrsrmh@emm0f^m'

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

MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
)

ROOT_URLCONF = 'mac.urls'

TEMPLATE_DIRS = (
rel('templates')
)

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
)
Блин ну даже шаблоны нормально работают.. все гуд.. Если прописывать абсолютные пути к Медиа тоже не работает. :( Подскажите что я не так делаю?



Офлайн

#2 Апрель 5, 2010 09:41:31

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Вопрос начинающего: доступ к директории /media

Шаблон то покажете?



Офлайн

#3 Апрель 5, 2010 10:35:34

macgera
От:
Зарегистрирован: 2009-12-19
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос начинающего: доступ к директории /media

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>{{ titleofpage }}</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="author" content="Mikhail Yakimenko aka macgera" />
<link rel="shortcut icon" href="{{ MEDIA_URL }}images/favicon.ico" />
<link rel="stylesheet" href="{{ MEDIA_URL }}css/mg.css" type="text/css" media="screen" />
<link rel="stylesheet" href="{{ MEDIA_URL }}css/lightbox.css" type="text/css" media="screen" />

<script type="text/javascript" src="{{ MEDIA_URL }}js/jquery.js"></script>
<script type="text/javascript" src="{{ MEDIA_URL }}js/vtip.js"></script>
<link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}css/vtip.css" />

<script type="text/javascript" src="{{ MEDIA_URL }}js/jquery.js"></script>
<script type="text/javascript" src="{{ MEDIA_URL }}js/jquery.lightbox-0.5.js"></script>
<link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}css/jquery.lightbox.css" media="screen" />

<script type="text/javascript">
$(function() {
$('#gallery a').lightBox();
});
</script>

</head>
<body>

<div class="wrap-width"><!-- fix width -->

<div class="wrap-header"><!-- [begin] #wrap-header -->

<div class="header"><!-- [begin] #header -->
<!-- olololololo onotole otake -->
</div><!-- [end] #header -->

</div><!-- [end] #wrap-header -->

<div class="wrap-content"><!-- [begin] #wrap-content -->

<div class="content"><!-- CONTENT HERE -->

<!-- ------------------- WEB ---------------------- -->

<h2><em>{{ title }}</em></h2>

<p>{{ text }}</p>

</div>

</div><!-- [end] #wrap-content -->

<div class="wrap-footer"><!-- [begin] #wrap-footer -->

<div class="footer blue">

<div class="foot-info">
<!-- olololololo onotole otake -->
</div>

<div class="foot-info">
<!-- olololololo onotole otake -->
</div>

<div class="foot-info">
<!-- olololololo onotole otake -->
</div>

<div class="cl"></div><!-- CLEAR -->

</div>

</div><!-- [end] #wrap-footer -->

</div><!-- fix width -->

</body>
</html>
views.py
# -*- coding: utf-8 -*-
from django.template.loader import get_template
from django.template import Template, Context
from django.http import HttpResponse

def main_page(request):
title = "Привет!"
text = ":) все прекрасно!"
t = get_template('main.html')
html = t.render(Context({'title': title, 'text': text}))
return HttpResponse(html)

def one(request):
title = "Привет!"
text = ":) все прекрасно!"
t = get_template('main.html')
html = t.render(Context({'title': title, 'text': text}))
return HttpResponse(html)



Отредактировано (Апрель 6, 2010 00:10:54)

Офлайн

#4 Апрель 5, 2010 11:41:00

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Вопрос начинающего: доступ к директории /media

И вьюху не мешало бы. Вы уверены что переменная MEDIA_URL есть в контексте?



Офлайн

#5 Апрель 6, 2010 00:01:43

macgera
От:
Зарегистрирован: 2009-12-19
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос начинающего: доступ к директории /media

Daevaorn
И вьюху не мешало бы. Вы уверены что переменная MEDIA_URL есть в контексте?
Так даже я пробовал не так делать

прописывал все пути от корня сайта /media/css/.. и т.д. и картинку пытался вставить таже фигня :)


UPD - блин методом втыка разобрался нужно было settings импортировть..

код вдруг кому пригодится

from django.conf.urls.defaults import *
from django.conf import settings
from views import main_page, one

urlpatterns = patterns('',
....
(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),
....
)



Отредактировано (Апрель 6, 2010 00:09:05)

Офлайн

  • Начало
  • » Django
  • » Вопрос начинающего: доступ к директории /media[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version