python - Django Admin - 'UserProfile' object has no attribute 'first_name' -


i've tried userprofile using onetoonefield extend user in django seems work. then, i've created registration view , forms able register new user using userprofile module.

the problem when i've created user using form, django admin started raise errors when click on users button in admin page.

edit: worth when i've created new user, there exception id not unique caused post_save method in models.

do know problem or should do?

enter image description here here pieces of code:

views.py

def register(request):     if request.method == 'post':         user_form = userform(request.post)         profile_form = userprofileform(request.post)         if user_form.is_valid() , profile_form.is_valid():             user = user_form.save()             user.set_password(user.password)             user.save()              profile = profile_form.save(commit=false)             profile.user = user             profile.save()             return register_success(request)         else:             print user_form.errors, profile_form.errors      else:         user_form = userform()         profile_form = userprofileform()      return render(request,"auth/registration/register.html",context={'user_form':user_form,'profile_form':profile_form})  

forms.py

class contactusform(forms.form):     contact_name = forms.charfield(required=true)     from_email = forms.emailfield(required=true)     subject = forms.charfield(required=true)     message = forms.charfield(             required=true,             widget=forms.textarea     )   class userform(forms.modelform):     password = forms.charfield(widget=forms.passwordinput())      class meta:         model = user         fields = ('username', 'email', 'password')  class userprofileform(forms.modelform):     class meta:         model = userprofile         fields = ('telephone',) 

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 coincidence'),             ('relative_or_friends','from 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)      # od kial ste sa o nas dozvedeli     # stav      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

admin.site.register(admincontact)  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) 

__unicode__ method, in userprofile model, uses self.first_name , self.sur_name, not exist in model.

self.user.first_name appropriate.


Comments