Найти - Пользователи
Полная версия: шаблоны
Начало » Django » шаблоны
1 2
sonniy
я в замешательстве :( , когда дело дошло до подключения авторизации я напоролся на TemplateDoesNotExist
после такого я попробовал как в книжке, то есть url, views, templates, но ничего не поменялось:
TemplateDoesNotExist at /accounts/login/
registration/login.html
но самое интересное это:
Django tried loading these templates, in this order:
Using loader django.template.loaders.filesystem.Loader:
Using loader django.template.loaders.app_directories.Loader:
почему они пустые ??

никак не могу понять в чем соль :(
GoOoviN
Думаю по этому куску кода мало, что понятно. Какой сервер вы используете встроенный в Django или другой. Прикрепите код views и url а там что надумаем.
sonniy
использую встроенный сервер

urls:
# -*- coding: utf-8 -*-
from django.conf.urls.defaults import *
from inform.views import login
from django.contrib.auth.views import login, logout

urlpatterns = patterns('',
(r'^accounts/$', login),
(r'^accounts/logout/$', logout),
)
views:
from django.http import HttpResponseRedirect
from django.contrib import auth

def login(request):
username = request.POST['username']
password = request.POST['password']
user = auth.authenticate(username=username, password=password)
if user is not None and user.is_active:
auth.login(request, user)
return HttpResponseRedirect("/")
else:
return HttpResponseRedirect("/")

def logout(request):
auth.logout(request)
return HttpResponseRedirect("/")
и собственно сам шаблон:
<html>
<head><title>Тест</title></head>
<body>

<form method="post" action="" class="fullForm">{% csrf_token %}
<table>
<thead><h1>Авторизация:</h1></thead>
<tr>
<th>E-mail:</th>
<td>{{form.username}}</td>
</tr>
<tr>
<th>{{form.password.label}}:</th>
<td>{{form.password}}</td>
</tr>
<tr><th></th><td class="button"><button class="btn" type="submit"><span><span>Вход</span></span
</table>
</form>
</body>
</html>
sonniy
все это дает :
TemplateDoesNotExist at /accounts/
registration/login.html
Request Method: GET
Request URL: http://localhost:8000/accounts/
Django Version: 1.2.3
Exception Type: TemplateDoesNotExist
Exception Value:
registration/login.html
Exception Location: /usr/lib/python2.6/site-packages/django/template/loader.py in find_template, line 138
Python Executable: /usr/bin/python
Python Version: 2.6.2
Python Path: ['/var/www/html/inform', '/usr/lib64/python26.zip', '/usr/lib64/python2.6', '/usr/lib64/python2.6/plat-linux2', '/usr/lib64/python2.6/lib-tk', '/usr/lib64/python2.6/lib-old', '/usr/lib64/python2.6/lib-dynload', '/usr/lib64/python2.6/site-packages', '/usr/lib64/python2.6/site-packages/PIL', '/usr/lib64/python2.6/site-packages/gst-0.10', '/usr/lib64/python2.6/site-packages/gtk-2.0', '/usr/lib64/python2.6/site-packages/webkit-1.0', '/usr/lib/python2.6/site-packages']
Server time: Срд, 27 Окт 2010 17:09:04 +0300
Template-loader postmortem

Django tried loading these templates, in this order:
Using loader django.template.loaders.filesystem.Loader:
Using loader django.template.loaders.app_directories.Loader:
PS
до этого делал проекты без авторизации, и все было пучком :)
GoOoviN
Я вижу, что template вообще не подключен как и для logina и для logout подключите template и радуйтесь.
sonniy
GoOoviN
Я вижу, что template вообще не подключен как и для logina и для logout подключите template и радуйтесь.
и всетоки что вы имеете ввиду? urls? или views?
указал в views ну и добавил аргумент:
 return render_to_response('login.html', {'body':body,                   
})
результат прежний, если все дело в urls, то почему в доках ничего нету ? да и про views там только редиректы
sonniy
простите но я окончательно запутался
ткните меня носом куда и что вставить …
GoOoviN
sonniy
простите но я окончательно запутался
ткните меня носом куда и что вставить …
http://docs.djangoproject.com/en/1.2/topics/generic-views/ вот ткну
Александр Кошелев
sonniy
простите но я окончательно запутался
ткните меня носом куда и что вставить …
У вас настроены пути к шаблонам в settings.py?
sonniy
TEMPLATE_DIRS = (os.path.join(PROJECT_DIR, 'templates'), )
но ошибка указывает на “registration/login.html” …. Ха ха ха , я перечитал что сам написал и вуаля…

в общем гребаный шаблон который привык находиться в “registration/login.htm” нужно было поместить так в мой проект “templates/registration/login.htm”

блин все равно не могу понять, изначально прочитав “TemplateDoesNotExist” я понимаю что шаблон не найден или его нет(но я то знаю что есть), мои первые мысли были “нужно явно указать где его искать” ну и соответственно нахожу такую вещь:
(r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name': 'myapp/login.html'}),
и меняю ее на :
(r'^accounts/login/$', login, {'template_name': 'templates/login.html'}),
в итоге получив все туже страницу “TemplateDoesNotExist” меня заступорило.
теперь то я понял что в идеале нужно было сделать так:
(r'^accounts/login/$', login, {'template_name': 'login.html'}),
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB