python - Django - Cannot create migrations for ImageField with dynamic upload_to value -


i upgraded app 1.7 (actually still trying).

this had in models.py:

def path_and_rename(path):     def wrapper(instance, filename):         ext = filename.split('.')[-1]         # set filename random string         filename = '{}.{}'.format(uuid4().hex, ext)         # return whole path file         return os.path.join(path, filename)     return wrapper  class userprofile(abstractuser):     #...     avatar = models.imagefield(upload_to=path_and_rename("avatars/"),                                null=true, blank=true,                                default="avatars/none/default.png",                                height_field="image_height",                                width_field="image_width") 

when try makemigrations, throws:

valueerror: not find function wrapper in webapp.models. please note due python 2 limitations, cannot serialize unbound method functions (e.g. method declared , used in same class body). please move function main module body use migrations. 

i not sure if ok answer own question, figured out (i think).

according this bug report, edited code:

from django.utils.deconstruct import deconstructible  @deconstructible class pathandrename(object):      def __init__(self, sub_path):         self.path = sub_path      def __call__(self, instance, filename):         ext = filename.split('.')[-1]         # set filename random string         filename = '{}.{}'.format(uuid4().hex, ext)         # return whole path file         return os.path.join(self.path, filename)  path_and_rename = pathandrename("/avatars") 

and then, in field definition:

avatar = models.imagefield(upload_to=path_and_rename,                                null=true, blank=true,                                default="avatars/none/default.png",                                height_field="image_height",                                width_field="image_width") 

this worked me.


Comments

Popular posts from this blog

javascript - how to protect a flash video from refresh? -

visual studio 2010 - Connect to informix database windows form application -

android - Associate same looper with different threads -