Найти - Пользователи
Полная версия: По поводу url (отбрасывает на главную страницу)
Начало » Django » По поводу url (отбрасывает на главную страницу)
1
dissdoc
Снова я и снова проблема. Но проблема теперь в изучении url
Давайте вначале с кодом разберемся
urls.py
url(r'^list/$', 'simple.direct_to_template',
kwargs={
'template': 'person/list.html',
'extra_context': {'persons': lambda: Person.objects.all()}
},
name='list'),
models.py
class Person(models.Model):
login = models.CharField(max_length = 150, verbose_name = "Логин")
passwd = models.CharField(max_length = 150, verbose_name = "Пароль")
timestamp = models.DateTimeField(auto_now_add = True)

def __unicode__(self):
return self.login

class Meta:
verbose_name_plural = "Пользователи"
list.html
{% for person in persons %}
{{ person.login }}
{% endfor %}
Иду по заданному адресу (все остальные работают прекрасно) http://localhost/list и меня выбрасывает снова на http://localhost
Ошибок никаких не дает, все типа верно. Но перенаправляет почему-то.. В чем ошибка у меня?
Александр Кошелев
Какую отладку вы производили? Как выглядит весь урлспай?
dissdoc
http://localhost/lis
А паттерн у вас со слешом на конце.
dissdoc
Весь urls.py выглядит вот так (я пока тут играюсь, поэтому правил кое-что.. но все равно не срабатывает)
from django.conf.urls.defaults import *
from src.person.views import *

urlpatterns = patterns('',
url(r'^register/$', register, name='register'),
url(r'^login/$', login, name='login'),
url(r'^logout/$', logout, name='logout'),
url(r'^(?P<login>\w+)/$', profile),
url(r'^list/$', 'django.views.generic.simple.direct_to_template',
kwargs={
'template': 'person/list.html',
'extra_context': {'persons': lambda: Person.objects.all()}
},
name='list'),
)
А отладку вручную пробовал разные урлы.. Все по крайней мере выводит либо в дебаг, либо на нужные страницы.. кроме вот этой ссылки…
Я не очень селен в отладке пока. Поэтому готов выслушать советы
Александр Кошелев
Что написано в консоле при запросе страницы?

dissdoc
'^(?P<login>\w+)/$',
Как вы думаете, “list/” подходит по эту регулярку?:
dissdoc
:)
Ну вот что ты будешь делать!
Спасибо!
vaxXxa
Офф топ: А зачем в
'extra_context': {'persons': lambda: Person.objects.all()}
lamda-функция?
Почему нельзя без нее?

Это я так - для себя спрашиваю.))
Александр Кошелев
vaxXxa
Почему нельзя без нее?
Можно
vaxXxa
Или это сделано, чтобы Person.objects.all() каждый раз высчитывалось, так как без лямбда кажись не будет постоянно считать?
Александр Кошелев
vaxXxa
Или это сделано, чтобы Person.objects.all() каждый раз высчитывалось, так как без лямбда кажись не будет постоянно считать?
В это случае да.

Обычно во вьюхах берут _clone() от queryset и при каждом вызове делают запрос.
dissdoc
Да, хотел написать почему)) Ну и скорость ответа ))) Опередили. Да, в основном через queryset, но я где-то увидел через lambda. На самом деле дело вкуса
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