我试图跟踪所有用户的用户头像。我已将一个imageField添加到我的用户模型中。我也有Facebook登录,如果用户使用Facebook登录,我很高兴只是使用他们的个人资料图片作为头像,并让Facebook主持这一点,但我也希望不登录Facebook的用户上传头像。问题是,当我尝试直接保存到的ImageField这样的:Django将imageField链接到外部网址
型号:
鉴于avatar = models.ImageField(upload_to='avatars/%Y/%m/%d', default="", blank=True)
:
info.avatar = 'http://graph.facebook.com/555555/picture/'
那么它相对于媒体上的网址保存如此当我尝试加载它时,我得到了这个avatar.url:
http://domain.com/media/https%3A//graph.facebook.com/555555/picture/
这显然不是我想要的。有什么办法可以将它们保存在同一个字段中,还是我不得不创建两个单独的字段,一个profile_pic_url字段和一个头像字段?
我不想保存图像。我想使用他们的Facebook图片的网址。但是,如果他们没有登录Facebook,我希望他们能够上传头像。但我希望将该链接保存在一个地方,无论是将其上载到媒体目录的图像引用,还是将其托管在Facebook上。 –
那么,当你上传一个文件时,它会被保存在某个地方,而你所关注的是一个指向该图像的链接。因此,从技术上讲,您*只能使用一个字段,但您必须添加自己的验证,最简单的方法可能是覆盖'save'方法 – yuvi
请参阅我的回答以获得建议的解决方案。仅仅因为你希望他们能够上传图片,并不需要你有一个ImageField – yuvi