Создание UserProfile формы в Django с полями first_name, last_name для django-profiles

Вот в текущем проекте столкнулся в проблемой, используя django-profiles. django-profiles - это приложение позволяет создать дополнительную модель (со своим набором полей) для профиля пользователя, которая дополняет модель User предоставленную фреймворком. При переходе на редакрирование этот дополнительный профиль генерирует форму UserProfile из вашей модели. Но так как во встроенной модели User уже есть поля first_name и last_name которые мне нужны в проекте, я решил сделать по правильному и не дублировать в базе информацию. И для того чтоб дополнить форму редактирования профиля полями first_name и last_name из модели User я нашел вот такое решение :


class UserProfileForm(forms.ModelForm):
first_name = forms.CharField(label=_(u'Prénom'), max_length=30)
last_name = forms.CharField(label=_(u'Nom'), max_length=30)

def __init__(self, *args, **kw):
super(UserProfileForm, self).__init__(*args, **kw)
self.fields['first_name'].initial = self.instance.user.first_name
self.fields['last_name'].initial = self.instance.user.last_name

self.fields.keyOrder = [
'first_name',
'last_name',
...другие поля...
]

def save(self, *args, **kw):
super(UserProfileForm, self).save(*args, **kw)
self.instance.user.first_name = self.cleaned_data.get('first_name')
self.instance.user.last_name = self.cleaned_data.get('last_name')
self.instance.user.save()

class Meta:
model = UserProfile


Следующая запись

Предыдущая запись

Связанные записи

Похожие записи

Комментарии

Еще нет комментариев.

Пингбэки

Оповещения открыты.

Трэкбэки

URL архива

Only authorized users can post comments