2013-07-08 6 views
1

Редактировать: не было никакой ошибки, этот код работает.Django Расширение пользовательской формы с электронной почтой, именем и фамилией

Я использую Django 1.4.5, Моя форма не отображает все поля, которые я хочу:

Мой код выглядит следующим образом:

class MyRegistrationForm(UserCreationForm): 
    email = forms.EmailField(required=True) 
    first_name = forms.CharField(max_length=30) 
    last_name = forms.CharField(max_length=30) 

    class Meta: 
     model = User 
     fields = ('username', 'email', 'first_name', 'last_name', 'password1', 'password2') 

    def save(self, commit=True): 
     user = super(MyRegistrationForm, self).save(commit=False) 
     user.email = self.cleaned_data['email'] 
     user.first_name = self.cleaned_data['first_name'] 
     user.last_name = self.cleaned_data['last_name'] 

     if commit: 
      user.save() 
     return user 

Это отображает только имя пользователя, адрес электронной почты и пароли.

+0

Можете ли вы разместить код UserCreationForm – Austin

+0

Это класс, импортированный из django.contrib.auth.forms. Вы можете увидеть код в [github] (https://github.com/django/django/blob/master/django/contrib/auth/forms.py) – user1846407

ответ

0

Итак, я проверил это быстро, просто инициализировав форму и распечатав ее на терминал. Я скопировал код формы и назвал следующим образом.

myregform = MyRegistrationForm() 
print myregform 

Это возвращает следующий ответ в терминале

<tr><th><label for="id_username">Username:</label></th><td><input id="id_username" maxlength="30" name="username" type="text" /><br /><span class="helptext">Required. 30 characters or fewer. Letters, digits and @/./+/-/_ only.</span></td></tr> 
<tr><th><label for="id_email">Email:</label></th><td><input id="id_email" name="email" type="text" /></td></tr> 
<tr><th><label for="id_first_name">First name:</label></th><td><input id="id_first_name" maxlength="30" name="first_name" type="text" /></td></tr> 
<tr><th><label for="id_last_name">Last name:</label></th><td><input id="id_last_name" maxlength="30" name="last_name" type="text" /></td></tr> 
<tr><th><label for="id_password1">Password:</label></th><td><input id="id_password1" name="password1" type="password" /></td></tr> 
<tr><th><label for="id_password2">Password confirmation:</label></th><td><input id="id_password2" name="password2" type="password" /><br /><span class="helptext">Enter the same password as above, for verification.</span></td></tr> 

Как вы можете видеть first_name и last_name отображает так моя догадка бы что-то делать с кодом обработки шаблона. Может быть, если вы могли бы также опубликовать это, я могу посмотреть.

+0

Извините, что пропустили редактирование, похоже, вы его решили ;-) –