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?
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
Post a Comment