On Tue, Sep 28, 2010 at 2:45 PM, adj7388 <adj7...@gmail.com> wrote: > Django newbie issue. Just trying to understand. I'm setting up a > simple UserProfile class to link to User (as described in several > places in documentation). Here's what I have --- a simple example of > storing the user's website in a profile > > #In myapp/models.py > class UserProfile(models.Model): > def __init__(self, website='http://www.default.com'): > super(UserProfile, self).__init__() > self.website = website > user = models.ForeignKey(User, unique=True, > related_name="user_profile") <-- note related_name...see below > website = models.URLField()
Why did you do that? and not: #In myapp/models.py class UserProfile(models.Model): user = models.ForeignKey(User, unique=True, related_name="user_profile") <-- note related_name...see below website = models.URLField(default='http://www.default.com') > > TypeError: __init__() takes at most 2 arguments (4 given) > That's cause __init__() of a model actually takes more arguments than you allow. Redefining __init__ goes something like: > class UserProfile(models.Model): > def __init__(self, *args, **kwargs): website = kwargs.get('website', "default_url") > super(UserProfile, self).__init__(*args, **kwargs) > self.website = website Note, I said _something like_ there could be more ways to do it. Cheers, -- Ale. -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-us...@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.