nevermind....serves me right for coding when tired.


On Oct 24, 2:23 pm, Lar <[EMAIL PROTECTED]> wrote:
> Hi,
>
> I've been beating my head against this for a couple of days.  I am
> creating a User with additional information stored in a profile
> model.  I create the user, then create the profile object. I get the
> form information and if it is valid, I just want to save the
> information and do a bit more processing.
>
> Two questions:
> 1. Why is the profile information not saving?
> 2. If I want to access the activation_string for a specific user and
> change it's value, how do I do that?  I'm sure the way I'm trying to
> do it is incorrect.
>
> Any assistance would be appreciated.
>
> Thanks,
> Laura
>
> **********I have this Model:
>
> class StudentProfile(models.Model):
>     address = models.CharField(max_length=50)
>     city = models.CharField(max_length=60)
>     province = models.CharField(max_length=30)
>     postalcode = models.CharField(max_length=50)
>     telephone = models.CharField(max_length=12)
>     memberoffice = models.ForeignKey('memberoffices.MemberOffice')
>     creationdate = models.DateTimeField(auto_now_add=True)
>     activated = models.BooleanField(default=False)
>     activation_string = models.CharField(max_length=30, unique=True)
>     activationdate = models.DateTimeField(null=True)
>     user = models.ForeignKey(User,unique=True)
>
> **********I have set it up in settings.py this way:
> AUTH_PROFILE_MODULE = 'students.StudentProfile'
>
> ********** I have this form:
> class StudentForm(forms.Form):
>         username = forms.CharField(max_length=30)
>         first_name = forms.CharField(max_length=30)
>         last_name = forms.CharField(max_length=30)
>         email = forms.EmailField()
>         password1 =
> forms.CharField(max_length=30,widget=forms.PasswordInput(render_value=False))
>         password2 =
> forms.CharField(max_length=30,widget=forms.PasswordInput(render_value=False))
>         address = forms.CharField(max_length=50)
>         city = forms.CharField(max_length=60)
>         province = forms.CharField(max_length=30)
>         postalcode = forms.CharField(max_length=50)
>         telephone = forms.CharField(max_length=12)
>         memberoffice =
> forms.ModelMultipleChoiceField(queryset=MemberOffice.objects.all())
>
> **********and this save routine associated with the form to save it:
>         def save(self):
>
>             newstudent =
> User.objects.create_user(username=self.cleaned_data['username'],
>
> email=self.cleaned_data['email'],
>
> password=self.cleaned_data['password1'])
>             newstudent.is_staff = False
>             newstudent.first_name = self.cleaned_data['first_name']
>             newstudent.last_name = self.cleaned_data['last_name']
>             newstudent.save()
>             try:
>                 newStudentProfile = request.newstudent.get_profile()
>             except:
>                 newStudentProfile = StudentProfile(user=newstudent)
>                 newStudentProfile.address =
> self.cleaned_data['address']
>                 newStudentProfile.city = self.cleaned_data['city']
>                 newStudentProfile.province =
> self.cleaned_data['province']
>                 newStudentProfile.postalcode =
> self.cleaned_data['postalcode']
>                 newStudentProfile.memberoffice =
> MemberOffice(id=self.cleaned_data['memberoffice'])
>                 newStudentProfile.save()
>             return newstudent
>
> **********This is the controlling view.py file:
>
> def registerstudent(request,language):
>     if request.POST:
>        form = StudentForm(data=request.POST)
>        if form.is_valid():
>             newstudent = form.save()
>             newstudent.get_profile().activation_string =
> generate_activation_string()
>             email_content =
> create_activation_email_content(newprofile.activation_string)
>
> send_activation_email(newstudent.first_name,newstudent.email,email_content)
>             return HttpResponse('You\'ll receive an email. Click the
> link in the email.')
>        else:
>             errors = form.errors
>             return HttpResponse(errors)
>     else:
>         form = StudentForm()
>         return render_to_response('englishpublic/register.html',
> {'form':form,})
>
> **********This is the error/traceback:
> Environment:
>
> Request Method: POST
> Request URL:http://127.0.0.1:8000/english/register/
> Django Version: 1.0-final-SVN-unknown
> Python Version: 2.5.1
> Installed Applications:
> ['django.contrib.auth',
>  'django.contrib.contenttypes',
>  'django.contrib.sessions',
>  'django.contrib.sites',
>  'django.contrib.admin',
>  'django.contrib.flatpages',
>  'django.contrib.admindocs',
>  'endeavor.students',
>  'endeavor.memberoffices',
>  'endeavor.membermanagers',
>  'endeavor.courses',
>  'endeavor.courseproviders']
> Installed Middleware:
> ('django.middleware.common.CommonMiddleware',
>  'django.contrib.sessions.middleware.SessionMiddleware',
>  'django.contrib.auth.middleware.AuthenticationMiddleware')
>
> Traceback:
> File "/Library/Python/2.5/site-packages/django/core/handlers/base.py"
> in get_response
>   86.                 response = callback(request, *callback_args,
> **callback_kwargs)
> File "/Users/laurarey/LAR Studios/endeavor/../endeavor/students/
> views.py" in registerstudent
>   29.             newstudent = form.save()
> File "/Users/laurarey/LAR Studios/endeavor/../endeavor/students/
> forms.py" in save
>   55.                 newStudentProfile.save()
> File "/Library/Python/2.5/site-packages/django/db/models/base.py" in
> save
>   307.         self.save_base(force_insert=force_insert,
> force_update=force_update)
> File "/Library/Python/2.5/site-packages/django/db/models/base.py" in
> save_base
>   367.                 values = [(f, f.get_db_prep_save(raw and
> getattr(self, f.attname) or f.pre_save(self, True))) for f in
> meta.local_fields if not isinstance(f, AutoField)]
> File "/Library/Python/2.5/site-packages/django/db/models/fields/
> related.py" in get_db_prep_save
>   665.             return
> self.rel.get_related_field().get_db_prep_save(value)
> File "/Library/Python/2.5/site-packages/django/db/models/fields/
> __init__.py" in get_db_prep_save
>   192.         return self.get_db_prep_value(value)
> File "/Library/Python/2.5/site-packages/django/db/models/fields/
> __init__.py" in get_db_prep_value
>   353.         return int(value)
>
> Exception Type: TypeError at /english/register/
> Exception Value: int() argument must be a string or a number, not
> 'list'
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to