в моем приложении django я использую файл css и некоторые изображения для своих веб-страниц. Я определил media_root и media_url как
в settings.py
MEDIA_ROOT = '/home/me/dev/python/django/myproject/mysite/media/'
MEDIA_URL = '/site_media/myapp/'
ADMIN_MEDIA_PREFIX = '/media/'
TEMPLATE_DIRS = (
'/home/me/dev/python/django/myproject/mysite/myapp/myapptemplates',
)
папка media содержит
myapp/css and myapp/img folders
полный путь к base.html:
/home/me/dev/python/django/myproject/mysite/myapp/myapptemplates/myapp/base.html
В приведенном выше файле base.html я помещаю css и изображения как
<head>
<title>myapp</title>
<LINK REL=StyleSheet HREF="{{MEDIA_URL}}css/mystyle.css" TYPE="text/css" MEDIA="screen, print"/>
<link rel="shortcut icon" href="{{ MEDIA_URL }}img/my-icon.ico"/>
<div id="header">
<img class="centerpage" src="{{ MEDIA_URL }}img/mypic.gif" alt="MY WEB APP PIC">
</div>
Когда я пытаюсь перечислить все записи, которые я создал в своем приложении, все отображается правильно. Но я вижу код ответа 304 для GET на css и изображениях.(Я использую django1.1.1, поэтому я не использовал csrf_token в шаблонах.) Вывод django для терминала равен
[04/Sep/2011 18:15:18] "GET /myapp/entries/ HTTP/1.1" 200 3843
[04/Sep/2011 18:15:18] "GET /site_media/myapp/css/mystyle.css HTTP/1.1" 304 0
[04/Sep/2011 18:15:18] "GET /site_media/myapp/img/mypic.gif HTTP/1.1" 304 0
[04/Sep/2011 18:15:18] "GET /site_media/myapp/img/navigation1.png HTTP/1.1" 304 0
Как вы можете видеть, представление возвращает 200 где GET на cssи изображения возвращаются 304. Однако стиль и изображения правильно отображаются на веб-странице.
Кроме того, при возникновении проблемы, связанной с этим, при тестировании следующего представления происходит сбой.
@login_required
def entries_list(request,template_name,page_title):
entries=get_entries_of_user(request.user)
dict={'page_title':page_title ,'entries':entries}
req_context=RequestContext(request,dict)
return render_to_response(template,req_context)
class BaseTestCase(TestCase):
def setUp(self):
super(BaseTestCase,self).setUp()
self.client.login(username='me',password='me')
class EntryTest(BaseTestCase):
fixtures=['entries.json']
def test_entries_list_view(self):
print 'reverse=',reverse('myapp_entry_list')
response=self.client.get(reverse('myapp_entry_list'))
status_code=response.status_code
print 'st code=',status_code
entries=get_context_variable(response,'entries')
self.assertEqual(200,status_code)
def get_context_variable(response,name):
print 'response_context=',response.context
return response.context[name]
Печать кода состояния здесь дает
st code= 302
Печать response.context печатает 'None', и возникает ошибка типа, когда response.context ['records']
in get_context_variable
return response.context[name]
TypeError: 'NoneType' object is unsubscriptable
Я не мог понять, почему это происходит. Может кто-нибудь мне помочь?