I've got the reason, so I thought I'd post it here, and I'll raise a ticket with the Debug app.
It's an error with the Debug app I use for developing. If you switch it off with Local_Dev = False, everything works. On Jul 15, 9:24 am, Ricko <rickentr...@gmail.com> wrote: > Yep, here is the ProfileForm class > > from django import forms > from django.forms import ModelForm > from django.contrib.auth.models import User > > class ProfileForm(ModelForm): > > def __init__(self, *args, **kwargs): > super(ProfileForm, self).__init__(*args, **kwargs) > try: > self.fields['email'].initial = self.instance.user.email > self.fields['first_name'].initial = > self.instance.user.first_name > self.fields['last_name'].initial = > self.instance.user.last_name > except User.DoesNotExist: > pass > > email = forms.EmailField(label="Primary email",help_text='') > first_name = forms.CharField(label="First Name",help_text='') > last_name = forms.CharField(label="Last Name",help_text='') > > class Meta: > model = User > exclude = ('user',) > > def save(self, *args, **kwargs): > """ > Update the primary email address, first and last names on the > related User object as well. > """ > u = self.instance.user > u.email = self.cleaned_data['email'] > u.first_name = self.cleaned_data['first_name'] > u.last_name = self.cleaned_data['last_name'] > u.save() > profile = super(ProfileForm, self).save(*args,**kwargs) > return profile > > And the view (which is just the default from the Profile app): > > def edit_profile(request, form_class=None, success_url=None, > template_name='profiles/edit_profile.html', > extra_context=None): > """ > Edit the current user's profile. > > If the user does not already have a profile (as determined by > ``User.get_profile()``), a redirect will be issued to the > :view:`profiles.views.create_profile` view; if no profile model > has been specified in the ``AUTH_PROFILE_MODULE`` setting, > ``django.contrib.auth.models.SiteProfileNotAvailable`` will be > raised. > > **Optional arguments:** > > ``extra_context`` > A dictionary of variables to add to the template context. Any > callable object in this dictionary will be called to produce > the end result which appears in the context. > > ``form_class`` > The form class to use for validating and editing the user > profile. This form class must operate similarly to a standard > Django ``ModelForm`` in that it must accept an instance of the > object to be edited as the keyword argument ``instance`` to > its constructor, and it must implement a method named > ``save()`` which will save the updates to the object. If this > argument is not specified, this view will use a ``ModelForm`` > generated from the model specified in the > ``AUTH_PROFILE_MODULE`` setting. > > ``success_url`` > The URL to redirect to following a successful edit. If not > specified, this will default to the URL of > :view:`profiles.views.profile_detail` for the profile object > being edited. > > ``template_name`` > The template to use when displaying the profile-editing > form. If not specified, this will default to > :template:`profiles/edit_profile.html`. > > **Context:** > > ``form`` > The form for editing the profile. > > ``profile`` > The user's current profile. > > **Template:** > > ``template_name`` keyword argument or > :template:`profiles/edit_profile.html`. > > """ > try: > profile_obj = request.user.get_profile() > except ObjectDoesNotExist: > return > HttpResponseRedirect(reverse('profiles_create_profile')) > > I should have said that I am passing the form class like so: > > from django.conf.urls.defaults import * > from profiles import views > from django.contrib.auth.decorators import login_required > from userinfo.forms import ProfileForm > > #the urls for the login sections of the site > > urlpatterns = patterns('', > url(r'^edit/$', > login_required(views.edit_profile), > {'form_class':ProfileForm}, > name='profiles_edit_profile'), > url(r'^(?P<username>\w+)/$', > login_required(views.profile_detail), > name='profiles_profile_detail'), > ) > > On Jul 15, 2:40 am, Subhranath Chunder <subhran...@gmail.com> wrote: > > > Could you provide the code for the custom ProfileForm class and the views > > first. > > > Thanks, > > Subhranath Chunder. > > > On Thu, Jul 15, 2010 at 2:49 AM, Ricko <rickentr...@gmail.com> wrote: > > > Using ubernostroms Django Registration app coupled with his Profile > > > app, both highly recommended, got the default app up and running no > > > problems at all. > > > I'm unable to override any default behaviour the proper way, as I > > > can't seem to pass any extra parameters through the urls.py file. Here > > > is my urls: > > > > from django.conf.urls.defaults import * > > > from profiles import views > > > from django.contrib.auth.decorators import login_required > > > from userinfo.forms import ProfileForm > > > > urlpatterns = patterns('', > > > url(r'^edit/$', > > > login_required(views.edit_profile), > > > {'form_class' : ProfileForm}, > > > name='profiles_edit_profile'), > > > url(r'^(?P<username>\w+)/$', > > > login_required(views.profile_detail), > > > name='profiles_profile_detail'), > > > ) > > > > I have my custom form class ProfileForm. When I try this I get a > > > stack: > > > > Original Traceback (most recent call last): > > > File "/Library/Python/2.5/site-packages/django/template/debug.py", > > > line 71, in render_node > > > result = node.render(context) > > > File "/Library/Python/2.5/site-packages/django/template/ > > > defaulttags.py", line 155, in render > > > nodelist.append(node.render(context)) > > > File "/Library/Python/2.5/site-packages/django/template/debug.py", > > > line 87, in render > > > output = force_unicode(self.filter_expression.resolve(context)) > > > File "/Library/Python/2.5/site-packages/django/utils/encoding.py", > > > line 71, in force_unicode > > > s = unicode(s) > > > TypeError: unbound method __unicode__() must be called with > > > ProfileForm instance as first argument (got nothing instead) > > > > Now, the docs say to pass in the Class name, and the stack seems to be > > > saying I need an Instance? Whatever extra parameter I pass I get the > > > same error. > > > > What am I doing wrong? > > > > -- > > > 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<django-users%2bunsubscr...@googlegroups.com> > > > . > > > For more options, visit this group at > > >http://groups.google.com/group/django-users?hl=en. > > -- 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.