You can't change the definition of a field in a derived class of a model -- what if the base class relies on the existing behavior in any way?
What I'd suggest is define a custom save() method in your Photo class that adds the date, then calls the super() save:
import datetime
def save(self, *args, **kwargs):
if not self.pk:
# instance is being created.
self.publish_date = datetime.datetime.now()
super(Photo, self).save(*args, **kwargs)
If you find yourself doing this a lot, you could create a mixin that adds this functionality to any class.