# The model: from django.contrib.auth.models import User class UserProfile(models.Model): user = models.OneToOneField(User) company = models.CharField(blank=True, maxlength=128) address1 = models.CharField(blank=True, maxlength=128) address2 = models.CharField(blank=True, maxlength=128) city = models.CharField(blank=True, maxlength=128) state = models.ForeignKey(State) zipcode = models.CharField(blank=True, maxlength=10) # The view: from django.views.generic.create_update import * from proj.myapp.models import UserProfile def update_profile_view(request): user_id = request.user.id try: profile = UserProfile.objects.get(pk=user_id) except UserProfile.DoesNotExist: # Create a new profile return create_object( request, model = UserProfile, login_required = True, post_save_redirect = '/home/', ) # Update existing profile return update_object( request, model = UserProfile, object_id = user_id, login_required = True, post_save_redirect = '/home/', ) # When I POST a form to this view, I get the following error: Traceback (most recent call last): File "/usr/local/lib/python2.4/site-packages/Django-0.95-py2.4.egg/django/core/handlers/base.py" in get_response 74. response = callback(request, *callback_args, **callback_kwargs) File "/path/to/django/myapp/profiles/views.py" in update_profile_view 30. post_save_redirect = '/home/', File "/usr/local/lib/python2.4/site-packages/Django-0.95-py2.4.egg/django/views/generic/create_update.py" in update_object 113. object = manipulator.save(new_data) File "/usr/local/lib/python2.4/site-packages/Django-0.95-py2.4.egg/django/db/models/manipulators.py" in save 101. new_object.save() File "/usr/local/lib/python2.4/site-packages/Django-0.95-py2.4.egg/django/db/models/base.py" in save 175. (backend.quote_name(self._meta.db_table), backend.quote_name(self._meta.pk.column)), [pk_val]) File "/usr/local/lib/python2.4/site-packages/Django-0.95-py2.4.egg/django/db/backends/util.py" in execute 12. return self.cursor.execute(sql, params) ProgrammingError at /profile/ ERROR: column "testuser" does not exist SELECT 1 FROM "profiles_userprofile" WHERE "user_id"=testuser LIMIT 1 # END ERROR MESSAGE