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
Post a Comment