I've seen examples online of people using __getattr__ with Django models, but whenever I try I get errors. (Django 1.2.3)
I don't have any problems when I am using __getattr__ on normal objects.  For example:
class Post(object):
     def __getattr__(self, name):
         return 42
Works just fine...
 >>> from blog.models import Post
 >>> p = Post()
 >>> p.random
 42
Now when I try it with a Django model:
from django.db import models
class Post(models.Model):
     def __getattr__(self, name):
         return 42
And test it on on the interpreter:
 >>> from blog.models import Post
 >>> p = Post()
 ERROR: An unexpected error occurred while tokenizing input The
  
  following traceback may be corrupted
  or invalid The error message is: ('EOF
  in multi-line statement', (6, 0))
  
  --------------------------------------------------------------------------- TypeError
  Traceback (most recent call last)
  
  /Users/josh/project/
  in ()
  
  /Users/josh/project/lib/python2.6/site-packages/django/db/models/base.pyc
  in init(self, *args, **kwargs)
      338             if kwargs:
      339                 raise TypeError("'%s' is an invalid keyword
  argument for this function" %
  kwargs.keys()[0])
  -- 340         signals.post_init.send(sender=self.class,
  instance=self)
      341 
      342     def repr(self):
  
  /Users/josh/project/lib/python2.6/site-packages/django/dispatch/dispatcher.pyc
  in send(self, sender, **named)
      160 
      161         for receiver in self._live_receivers(_make_id(sender)):
  -- 162             response = receiver(signal=self, sender=sender,
  **named)
      163             responses.append((receiver, response))
      164         return responses
  
  /Users/josh/project/python2.6/site-packages/photologue/models.pyc
  in add_methods(sender, instance,
  signal, *args, **kwargs)
      728     """
      729     if hasattr(instance, 'add_accessor_methods'):
  -- 730         instance.add_accessor_methods()
      731 
      732 # connect the add_accessor_methods function to the
  post_init signal
  
  TypeError: 'int' object is not
  callable
Can someone explain what is going on?
EDIT: I may have been too abstract in the examples, here is some code that is closer to what I actually would use on the website:
class Post(models.Model):
    title = models.CharField(max_length=255)
    slug = models.SlugField()
    date_published = models.DateTimeField()
    content = RichTextField('Content', blank=True, null=True)
    # Etc...
Class CuratedPost(models.Model):
    post = models.ForeignKey('Post')
    position = models.PositiveSmallIntegerField()
    def __getattr__(self, name):
        ''' If the user tries to access a property of the CuratedPost, return the property of the Post instead...  '''
        return self.post.name
    # Etc...
While I could create a property for each attribute of the Post class, that would lead to a lot of code duplication.  Further more, that would mean anytime I add or edit a attribute of the Post class I would have to remember to make the same change to the CuratedPost class, which seems like a recipe for code rot.