Thanks Malcolm,

I will test it when i get back home :)

Alan

On Jul 31, 9:46 am, Malcolm Tredinnick <[email protected]>
wrote:
> On Thu, 2009-07-30 at 12:33 -0700, zayatzz wrote:
> > ... Hello!
>
> > I have a model (profile) which's only required field is its foreignkey
> > - django.contrib.auth.User.
>
> > Following the example of forementioned model and its manager i created
> > manager for the profile:
>
> > class ProfileManager(models.Manager):
> >    def create_profile(self, username):
> >            "Creates and saves a User with the given username, e-mail and
> > password."
> >            now = datetime.datetime.now()
> >            profile = self.model(None, username)
> >            profile.save()
> >            return profile
>
> It's very tricky to pass positional arguments to the __init__ method of
> a model. Django does it itself when it creates models, because it knows
> how the fields are structured, but it's very hard to get right and not
> recommended in normal code. Instead, use keyword arguments. So you would
> write something like this:
>
>         user_instance = User.objects.get(username=username)
>         profile = self.model(user = user_instance)
>         profile.save()
>
> The other change I've made here is to retrieve the correct User object,
> since Django doesn't automatically know how to go from your "username"
> string to a particular User instance.
>
>
>
>
>
> > and Profile model is like this :
> > class Profile(models.Model):
> >    user = models.ForeignKey(User, unique=True)
> >         ......
> >         several other stuff all have null=True
> >         .......
> >    objects = ProfileManager()
>
> > Now when i do this in a view:
> >                    profile = Profile.objects.create_profile(request.user)
>
> > I get an error:
>
> > Exception Type:    TypeError
> > Exception Value:   int() argument must be a string or a number, not
> > 'User'
>
> > So why is this not working?
>
> For the future, it is highly recommended to post the full traceback. On
> the debug page you see in your web browser, there is a link that says
> "cut-and-paste view". Click on that to get something that is suitable
> for sticking in email. In this case, it's kind of possible to guess what
> was causing the error (although I may have guessed poorly). At other
> times, it isn't, so a little guidance from the traceback can often work
> wonders.
>
> Regards,
> Malcolm
--~--~---------~--~----~------------~-------~--~----~
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