默认图片头像取决于性别

时间:2016-11-13 00:19:51

标签: django django-models

我想用默认的头像创建一种配置文件。

'(div ((class "result")) #<void>)

我试图编写一个函数,用jpg返回我文件夹的路径。

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)

显然它不起作用,你能给我一些建议如何解决它吗? 也许我应该覆盖保存方法? THX。

被修改

好的,我尝试过使用post_save,但它确实也能正常工作:

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

也许我不应该将头像设置为像路径一样的字符串?

编辑2

它正在为pre_save工作。

1 个答案:

答案 0 :(得分:0)

好像你正在寻找post_save signal。它会给你created标志。因此,如果created为True,您可以在处理程序中手动设置所需的图像。