As of many years ago, when longdesc was added to the Picture model, it set null=True, which despite being frowned upon for CharFields (because then you have to search for '' and NULL), could be useful, in the following kind of case:
model = Picture
exclude =['longdesc', 'float']
This doesn't appear to work (At least on my local setup, using ... MySQL), as longdesc is marked as NOT NULL. I know Picture is the poor child no-one wants to love, or keep, particularly, but the migration should probably reflect the actual state of the plugin.
As of right now, I can't actually confirm that doing manage.py schemamigration --auto picture would yield a new migration to fix it, because it causes South to error:
manage.py schemamigration --auto picture
File "/path/to/south/creator/actions.py", line 59, in triple_to_def
", ".join(triple + ["%s=%s" % (kwd, val) for kwd, val in triple.items()]), # args and kwds
AttributeError: 'str' object has no attribute 'items'
This seems to be because of line 113 of (at the least) the last migration, which added longdesc - it notably doesn't conform to the same syntax as line 104, which causes triple to be a string instead of a dict:
cls = <class 'south.creator.actions.DeleteModel'>
triple = models.OneToOneField(to=orm['cms.CMSPluginPublic'], unique=True, primary_key=True)
As I have no idea what CMSPluginPublic is (I've never even seen the class, and have no idea if it's still relevant), I'm hesitant to attempt to fix it (and thus see if this ticket even has merit) without someone more knowledgable wading in to confirm this.
Migrations fixed in #2037 / #2038
closed... as picture plugin has been removed from core as well