добавить поля first_name и last_name в django-profile

Мне нужно добавить поля first_name и last_name , связанные с модель пользователя и отображать ее в профиле , форма .

поля:

   >>> user = User.objects.get(pk=1)
   >>> user.first_name
       u'Some'
   >>> user.last_name
       u'User'

Моя модель выглядит примерно так:

class UserProfile(models.Model):
  user = models.ForeignKey(User, unique=True)
  personal_email = models.EmailField(blank=True)
  address = models.CharField(max_length=140)
  phone_number = models.CharField(max_length=20)

  def __unicode__(self):
      return u'Profile of user: %s' % self.user.username

при визуализации формы профиля необходимо показать поля.

first_name:  
last_name: 
personal_email:  
address: 
phone_number:

Изменить

Я решил :

#forms.py

 class UserProfileForm (forms.ModelForm):
 first_name = forms.CharField (max_length = 30)
 last_name = forms.CharField (max_length = 30)

 def __init __ (self, * args, ** kwargs):
 super (UserProfileForm, self) .__ init __ (* args, ** kwargs)
 self.fields ['first_name']. initial = self.instance.user.first_name
 self.fields ['last_name']. initial = self.instance.user.last_name

 self.fields.keyOrder = [
 'Имя',
 'фамилия',
 'личное электронное письмо',
 'адрес',
 'телефонный номер',
 ]


 def save (self, * args, ** kwargs):
 super (UserProfileForm, self) .save (* args, ** kwargs)
 self.instance.user.first_name = self.cleaned_data.get ('первое_имя') 
 self.instance.user.last_name = self.cleaned_data.get ('последнее_имя')
 self.instance.user.save ()

 класс Meta:
 model = UserProfile

# urls.py

  url (r '^ profiles / edit /', edit_profile, {'form_class': UserProfileForm},
 name = 'profiles_edit_profile'),

and add in #signals.py

    @receiver(post_save, sender=User)
    def create_profile(sender, instance, created, **kwargs):
        if created:
            userprofile, new = UserProfile.objects.get_or_create(user=instance)
5
задан Ezequiel Marquez 23 May 2011 в 04:46
поделиться