2016-03-26 16 views
0

私は、ユーザーを拡張してより多くの属性を格納できるようにしました。今、私はUserProfileの登録フォームを作成しようとしています。すべての属性、要件などを含むUserProfileを作成するフォームを作成するにはどうすればよいですか? first_namelast_nameが必要です。拡張ユーザー登録フォームエラー

は、ここでは答えずに非常によく似た質問があります:link

は、私はこれを試してみたが、成功しません:

class UserRegistrationForm(UserCreationForm): 
    email = forms.EmailField(required = True) 
    first_name = forms.CharField(required = False) 
    last_name = forms.CharField(required = False) 

    class Meta: 
     model = UserProfile 
     fields = ('username', 'email', 'password1', 'password2') 

    def save(self,commit = True): 
     user = super(UserRegistrationForm, 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'] 
     user.telephone = self.cleaned_data['telephone'] 


     if commit: 
      user.save() 

     return user 

このエラーを取得:

HERE
class UserRegistrationForm(UserCreationForm): 
    File "C:\Users\Milano\PycharmProjects\FutileStudio\SolutionsForLanguages\venv\ 
lib\site-packages\django\forms\models.py", line 257, in __new__ 
    raise FieldError(message) 
django.core.exceptions.FieldError: Unknown field(s) (username) specified for Use 
rProfile 

はISモデルと管理者の一部:

MODELS.PY:

class UserProfile(models.Model): 
     user = models.OneToOneField(User,on_delete=models.CASCADE) 

    # ATRIBUTY KTORE BUDE MAT KAZDY 
    telephone = models.CharField(max_length=40) 

    HOW_DO_YOU_KNOW_ABOUT_US_CHOICES = (
      ('coincidence',u'It was coincidence'), 
      ('relative_or_friends','From my relatives or friends'), 
      ) 
    how_do_you_know_about_us = models.CharField(max_length=40, choices=HOW_DO_YOU_KNOW_ABOUT_US_CHOICES, null=True) 

    MARITAL_STATUS_CHOICES = (
     ('single','Single'), 
     ('married','Married'), 
     ('separated','Separated'), 
     ('divorced','Divorced'), 
     ('widowed','Widowed'), 
    ) 
    marital_status = models.CharField(max_length=40, choices=MARITAL_STATUS_CHOICES, null=True) 

    def __unicode__(self): 
     return '{} {}'.format(self.first_name,self.surname) 

def create_profile_user_callback(sender,instance, **kwargs): 
    profile, new = UserProfile.objects.get_or_create(user=instance) 
post_save.connect(create_profile_user_callback, User) 

ADMIN.PY:あなたのフォームはまだメタの下に、何の属性のユーザー名が含まれていない

class UserProfileInline(admin.StackedInline): 
    model = UserProfile 
    can_delete = False 
    verbose_name_plural = 'User_Profile' 

class UserAdmin(BaseUserAdmin): 
    inlines = (UserProfileInline,) 

admin.site.unregister(User) 
admin.site.register(User,UserAdmin) 

答えて

0

、ユーザ名が含まれています。フォームフィールドにユーザー名を追加してみてください。

関連する問題