django - Default image avatar depending on gender -


i create kind of profiles default avatars.

gender_choices = (     ('m', 'male'),     ('f', 'female'), )  class someone(models.model):     name = models.charfield(max_length=120)     gender = models.charfield(max_length=1, choices=gender_choices)     image = models.imagefield(upload_to='avatars', default=someone_avatar) 

i'm trying write function returns path folder jpg.

def someone_avatar(instance):     gender = instance.gender     if gender == 'male':         avatar = 'avatars/m.jpg'     else:         avatar = 'avatars/f.jpg'     return avatar 

obviously doesn't work, give me advise how solve it? maybe should overwrite save method? thx.

edited

ok, tried post_save does't work well:

def set_avatar(instance):     avatar = instance.image     gender = instance.gender     if gender == 'male':         avatar = 'persons/m.jpg'     else:         avatar = 'persons/f.jpg'     return avatar  def post_save_avatar(sender, instance, *args, **kwargs):      if not instance.image:          instance.image = set_avatar(instance) post_save.connect(post_save_avatar, sender=person) 

maybe shouldn't set avatar string path?

edit 2

it's working pre_save.

seems you're looking post_save signal. gives created flag. can manually set desired image in handler if created true.


Comments

Popular posts from this blog

php - How to display all orders for a single product showing the most recent first? Woocommerce -

asp.net - How to correctly use QUERY_STRING in ISAPI rewrite? -

angularjs - How restrict admin panel using in backend laravel and admin panel on angular? -