Я совершенно новичок в Django, и я только что создал свою первую страницу регистрации с django-registration, и все работало хорошо (пользователи могут регистрироваться, менять пароли и т. Д.). Теперь я хочу немного расширить свое приложение, чтобы добавить простую страницу профиля, чтобы при входе в систему пользователь мог видеть свой профиль. Поэтому я создал шаблон profile_page.html для расширения базового шаблона и в моих представлениях настроил очень простое представление:
@login_required
def profile_info_view(request, template_name='profile/profile_page.html'):
user_profile = request.user.username
return render_to_response(template_name,{ "user":user_profile })
Мой базовый шаблон выглядит так:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<link rel="stylesheet" href="{{ STATIC_URL }}css/style.css" />
<link rel="stylesheet" href="{{ STATIC_URL }}css/reset.css" />
{% block extra_head_base %}
{% endblock %}
<title>{% block title %}User test{% endblock %}</title>
</head>
<body>
<div id="header">
{% block header %}
{% if user.is_authenticated %}
{{ user.username }} |
<a href="{% url auth_password_change %}">{% trans "Profile" %}</a> |
<a href="{% url index %}">{% trans "Home" %}</a> |
<a href="{% url auth_logout %}">{% trans "Log out" %}</a>
{% else %}
<a href="{% url auth_login %}">{% trans "Log in" %}</a> | <a href="{% url registration_register %}">{% trans "Sign up" %}</a>
{% endif %}
{% endblock %}
</div>
<div id="content">
{% block content %}{% endblock %}
</div>
</body>
</html>
и шаблон profile_pages.html:
{% extends "base.html" %}
{% load i18n %}
{% block content %}
Hi, {{ user }}
{% endblock %}
и url.py:
urlpatterns = patterns('',
(r'^accounts/', include('registration.urls')),
(r'^profile/', profile_info_view),
(r'^$', direct_to_template,{ 'template': 'index.html' }, 'index'),
)
urlpatterns += staticfiles_urlpatterns()
Так что я хочу, чтобы, когда вошедший в систему пользователь переходил на страницу профиля (example.com/profile/), он отображал страницу профиля и страницу входа, если пользователь не вошел в систему.
Но когда вошедший в систему пользователь заходит в / profile, он оценивает базовый шаблон, как если бы пользователь не зарегистрировался (показывает «Log in» в заголовке), но он показывает результат профиля. Кроме того, статические файлы не работают так же хорошо?
Есть какие-нибудь подсказки, почему это может происходить?
p.s. Я включил каталоги шаблонов в settings.py
Спасибо за любую помощь!