Прочитав замечательную статью и установив django-registration, появилась потребность установить django-profile. Скачав с репозитория, приступил к изучению, поискам в интернете и прочтению стандартной документации. Мне, как новичку в django, это приложение показалось удобным, так как не нужно много заморачиваться и нет пока необходимых знаний для реализации профайлов юзеров. Хотелось бы поделится тем, что получилось, узнать с людьми, которым это будет интересно. Возможно, для тех, кто пользуется django уже довольно давно данная статья покажется смешной. Но если бы я наткнулся на нее, то мне бы она помогла. По этой причине я и решил её написать.

В принципе, инструкция по установке есть в репозитории, за исключением одного маленького нюанс — он не обновлялся около 4-х лет. Это была основная проблема, так как я использую django 1.6.5.

В инструкции есть перечень необходимых компонентов для корректной работы:

* The Python Imaging Library
* Optional: the Google Data API (allows image searching)
В репозитории также находится демо приложение, которое можно запустить и посмотреть как оно работает. Приступим к настройке.

Добавляем приложение в INSTALLED_APPS:

INSTALLED_APPS = (
...
# приложение django-profile
'userprofile',
# созданное нами приложение для проекта
'user_profile',
...
)

Добавляем следующие строки в settings.py:

# e-mail settings
DEFAULT_FROM_EMAIL = ''
EMAIL_HOST = ''
EMAIL_HOST_USER = ''
EMAIL_HOST_PASSWORD = ''

Если Вы хотите использовать Google как SMTP server:
DEFAULT_FROM_EMAIL = '<youraccount>@gmail.com'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = '<youraccount>@gmail.com'
EMAIL_HOST_PASSWORD = '<yourpassword>'
EMAIL_USE_TLS = True
EMAIL_PORT = "587" # это строка не обязательна

Добавьте в папку media Вашего проекта папку userprofile.
Теперь создаём сове приложение(я назвал его user_profile).А Вы как хотите.В файле models.py приложения user_profile создадим модель Profile.
from django.db import models
from userprofile.models import BaseProfile
from django.utils.translation import ugettext as _
import datetime
#что бы South не ругался по-поводу поля Country
from south.modelsinspector import add_introspection_rules
add_introspection_rules([], ["^userprofile\.countries\.CountryField"])

GENDER_CHOICES = (('F', _('Female')), ('M', _('Male')),)

class Profile(BaseProfile):
last_name = models.CharField(max_length=100, blank=True)
first_name = models.CharField(max_length=100, blank=True)
gender = models.CharField(max_length=1, choices=GENDER_CHOICES, blank=True)
birthday = models.DateField(default=datetime.date.today(), blank=True)
url = models.URLField(blank=True)
about = models.TextField()
avatar = models.ImageField(upload_to='/userprofile')


Эта же модель приводится в документации. Добавляем ссылку в urls.py приложения:
#user_profile
from django.conf.urls import patterns, include, url

urlpatterns = patterns('',
url(r'^accounts/', include('userprofile.urls')),


После проведения этих нехитрых манипуляций, делаем syncdb и проводим миграцию через South. Так как я столкнулся с проблемой при создании таблиц, советую использовать South.

Теперь, когда вы попытаетесь запустить команду runserver, у вас начнут выскакивать ошибки такого типа: «Django import error — no module named django.conf.urls.defaults». Для решения проблемы заходим в папку userprofile/urls, ищем файл en.py и правим в нем первую строку из from django.conf.urls.defaults import * на from django.conf.urls import *. Следующей нашей задачей будет переправить строку from django.views.generic.simple import direct_to_template на from django.views.generic import TemplateView и поменять в файле все direct_to_template на TemplateView.

Теперь подключаем шаблоны, которые есть в папке: стили и js. В шаблонах необходимо будет изменить ссылку типа на , иными словами - добавить кавычки вокруг переменных.

В шаблонах необходимо будет изменить ссылку типа на , иными словами - добавить кавычки вокруг переменных.

Надеюсь, эта статья поможет решить проблему с вашим приложения и вдохновит на написание новых приложений и проектов и дальнейшее изучение django.