On Feb 19, 1:42 pm, Stanwin Siow <stanwin.kts...@gmail.com> wrote:
> Hello,
>
> The below method is an excerpt taken from the default registration forms.py 
> with a few additional inputs.
>
> class RegistrationForm(forms.Form):
>
>     keywords = forms.ModelMultipleChoiceField(queryset=Keyword.objects.all())
>
>     def save(self, profile_callback=None):
>
>         new_user = 
> RegistrationProfile.objects.create_inactive_user(username=self.cleaned_data['username'],password=self.cleaned_data['password1'],email=self.cleaned_data['email'],profile_callback=profile_callback)
>         new_profile = 
> UserProfile(user=new_user,username=self.cleaned_data['username'], 
> keywords_subscribed=self.cleaned_data['keywords'],first_name=self.cleaned_data['first_name'],last_name=self.cleaned_data['last_name'],email=self.cleaned_data['email'])
>         new_profile.save()
>         return new_user
>
> The highlighted portions will draw your attention to what i'm doing. As you 
> can see i'm using a modelmultiplechoicefield which allows me to select 
> multiple choices.
>
> However when it gets stored into the database, it appends strange characters 
> ( [<Keyword:)
>
> Is there a way to get rid of the special characters? or how is it even 
> appearing or getting populated?

If keywords_subscribed is a character field (as it seems), you should
store something like [keyword.text for keyword in
self.cleaned_data['keywords']] in the field, not the model list
directly. Another option is to store the keywords in a
ManyToManyField. In any case, the problem seems to be the mismatch of
saving models instances into a field that doesn't expect model
instances.

 - Anssi

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to