FerromanТогда придется свои обработчики для каждого шаблона делать вместо стандартного login.
Ага. Так передавать тогда hidden поле с идентификатором формы, и не парится.
Правда лучше таки на разные вьюхи разбить а не городить кучу…
FerromanТогда придется свои обработчики для каждого шаблона делать вместо стандартного login.
Ага. Так передавать тогда hidden поле с идентификатором формы, и не парится.
Правда лучше таки на разные вьюхи разбить а не городить кучу…
FerromanДля чайников вроде меня Джанга предоставляет такой сервис.
По каким урлам, и где это “автоматом”? Сами же сказали - action'ы одинаковые
Nick2009Да Джанга то как раз одна. Мы вот все тут разные.
Мы наверное разными джангами пользуемся.
Nick2009Похвально.
Я пока пользуюсь дефолтным функционалом и всё у меня работает, я даже эту хрень заставлю работать.
Nick2009Очень.
Просто хотел обсудить насколько это плохо.
Nick2009Вьюха логин, как следует и её названия - логинит пользователя. Про регистрацию она ничего не знает. Это хорошо.
Вьюха, получается, одна и это login , а темплейтов много.
Nick2009Тоже хорошо. Есть логаут, который делает что должен и про регистрацию тоже ничего не знает.
Как обработчик login прикрутить к logout с текстом?
Nick2009Обработчик никуда прикручивать не надо. Для логина, как мы поняли, есть своя вьюха.
Как обработчик login прикрутить к logout с текстом?
Nick2009Аналогично - ничего не надо никуда прикручивать.
Как login прикрутить к register, если у него совсем другой функционал.
Nick2009У вас в ТЗ прописано, что все эти три джанговские вьюхи должны уметь делать дела друг друга? Нет. Так зачем вы пытаетесь их это заставить?
ТЗ потомучто! Все страницы имеют форму login-а, а по дефолту урл должен выглядеть так
{% if not user.is_authenticated %}
<form action="{% url login %}?next={% url registration %}" method="POST">
<!-- Тут поля для логина -->
</form>
{% else %}
<form action="{% url logout %}?next={% url registration %}" method="POST">
</form>
{% endif %}
<form action="{% url registration %}" method="POST">
<!-- Тут поля для регистрации -->
</form>
DaevaornЭто всё так конечно, но…
Предположим, что вы дали каждому из урлов правильное имя (login, logout, register), и что вот это как раз и есть многострадальный шаблон для вьюхи регистрации:
Код:
{% if not user.is_authenticated %}
<form action=“{% url login %}?next={% url registration %}” method=“POST”>
<!– Тут поля для логина –>
</form>
{% else %}
<form action=“{% url logout %}?next={% url registration %}” method=“POST”>
</form>
{% endif %}
<form action=“{% url registration %}” method=“POST”>
<!– Тут поля для регистрации –>
</form>
Видите? И совсем не больно. Итого у вас остались три независимые вьюхи и при этом вы удовлетворили своё стремление следовать ТЗ.
FerromanИзвиняюсь, я исправил.
1. Я не телепат.
2. Документация Django начинается с “Overview” а не с “Введения”
3. Я думаю, такой внимательный человек сам разберётся без нашей помощи.
Nick2009Тут логика такая - надо вернуться на ту страницу, где пользователь воспользовался виджетом логина. В данном случае это страница регистрации, а в общем “текущая страница”. Но это всё на усмотрение автора.
Почему для login следующая страница - registration, а не profile?
DaevaornВ целом, да, а так, нет. Текущая страница это ‘.’, поэтому я и говорил, что action одинаковый.
Nick2009Nick2009Тут логика такая - надо вернуться на ту страницу, где пользователь воспользовался виджетом логина. В данном случае это страница регистрации, а в общем “текущая страница”. Но это всё на усмотрение автора.
Почему для login следующая страница - registration, а не profile?
Вы суть уловили?
(r'^accounts/logout/$',logout,{'template_name':'index.html','after_logout':'yes'}),
Nick2009Нет. Action как раз разный - в этом суть. И ‘.’ бессмысленно передавать как next.
Текущая страница это ‘.’, поэтому я и говорил, что action одинаковый.