Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 27, 2010 16:54:04

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

шаблоны

я в замешательстве :( , когда дело дошло до подключения авторизации я напоролся на 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:
почему они пустые ??

никак не могу понять в чем соль :(



Офлайн

#2 Окт. 27, 2010 17:03:20

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

шаблоны

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



Офлайн

#3 Окт. 27, 2010 17:10:29

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

шаблоны

использую встроенный сервер

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>



Офлайн

#4 Окт. 27, 2010 17:17:00

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

шаблоны

все это дает :

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
до этого делал проекты без авторизации, и все было пучком :)



Офлайн

#5 Окт. 27, 2010 17:24:04

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

шаблоны

Я вижу, что template вообще не подключен как и для logina и для logout подключите template и радуйтесь.



Офлайн

#6 Окт. 27, 2010 17:48:23

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

шаблоны

GoOoviN
Я вижу, что template вообще не подключен как и для logina и для logout подключите template и радуйтесь.
и всетоки что вы имеете ввиду? urls? или views?
указал в views ну и добавил аргумент:
 return render_to_response('login.html', {'body':body,                   
})
результат прежний, если все дело в urls, то почему в доках ничего нету ? да и про views там только редиректы



Офлайн

#7 Окт. 27, 2010 17:50:04

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

шаблоны

простите но я окончательно запутался
ткните меня носом куда и что вставить …



Офлайн

#8 Окт. 27, 2010 18:05:41

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

шаблоны

sonniy
простите но я окончательно запутался
ткните меня носом куда и что вставить …
http://docs.djangoproject.com/en/1.2/topics/generic-views/ вот ткну



Отредактировано (Окт. 27, 2010 18:05:57)

Офлайн

#9 Окт. 27, 2010 19:53:47

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

шаблоны

sonniy
простите но я окончательно запутался
ткните меня носом куда и что вставить …
У вас настроены пути к шаблонам в settings.py?



Офлайн

#10 Окт. 28, 2010 10:37:32

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

шаблоны

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'}),



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version