python - Question about Django and User Auth -


django's noob question:

i use dango.contrib.auth managing users of site. now, i'm developing 'settings page', user can edit first name, last name, , email address. in settings page want checkbox "newsletter".

questions are: 1) should put newsletter field in database? 2) how can create form editing these informations?

thanks.

-- update --

now i've in models.py:

class userprofile(models.model):     user = models.foreignkey(user, unique = true)     favourite_color = models.charfield(max_length = 40) 

and in forms.py:

class usersettingsform(forms.modelform):      class meta:         model = user         exclude = ('password',)      def save(self, commit=false):         user = super(usersettingsform,self).save(commit)         favourite_color = self.cleaned_data.get('favourite_color', '')         if favourite_color , user.favourite_color none:             userprofile(user=user).save()         if not slug:             userprofile.objects.filter(user=user).delete()          if not commit:             user.save()         return user 

i'm bit confused. edit informations first name, last name, email , favourite color in settings form i'm doing wrong.

you want @ user profiles.

edit: regarding forms, there stopping using 2 forms? think django ignores fields in http request don't match form, feed request 2 forms. when rendering template, django doesn't generate <form> tags or submit button, put both forms in same <form>. in view (modifying django example):

def edit_user_view(request):     if request.method == 'post': # if form has been submitted...         # 2 forms bound post data         userform = userform(request.post)         profileform = profileform(request.post)         if userform.is_valid() , userform.is_valid():             # validation rules pass             # process data in userform. , profileform.cleaned_data             # ...             return httpresponseredirect('/thanks/') # redirect after post     else:         # unbound forms         userform = userform()         profileform = profileform()      return render_to_response('edit_user.html', {         'userform': userform,         'profileform': profileform,     }) 

and in template:

<form action="/contact/" method="post">{% csrf_token %} {{ userform.as_p }} {{ profileform.as_p }} <input type="submit" value="submit" /> </form> 

this starting point, don't see reason can't work.


Comments