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

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

jsf - "PropertyNotWritableException: Illegal Syntax for Set Operation" error when setting value in bean -

laravel - Undefined property: Illuminate\Pagination\LengthAwarePaginator::$id (View: F:\project\resources\views\admin\carousels\index.blade.php) -