Python 渲染默认图像,Django
我在models.py中定义了一个带有默认图像的ImageField。每次我创建一个新用户时,我都可以在管理员中看到默认图像与该用户关联,正如我所希望的那样 问题是,当我尝试在我的模板中渲染它时,使用如下方式:Python 渲染默认图像,Django,python,django,django-models,Python,Django,Django Models,我在models.py中定义了一个带有默认图像的ImageField。每次我创建一个新用户时,我都可以在管理员中看到默认图像与该用户关联,正如我所希望的那样 问题是,当我尝试在我的模板中渲染它时,使用如下方式: {{user.userprofile.profilpic.url}} 它不起作用。图像不显示 但是,如果我进入我的管理员并手动更改它,即使使用完全相同的图像,它也可以工作。在创建用户时,图像似乎没有保存到数据库中 这是我的models.py: class UserProfile
{{user.userprofile.profilpic.url}}
它不起作用。图像不显示
但是,如果我进入我的管理员并手动更改它,即使使用完全相同的图像,它也可以工作。在创建用户时,图像似乎没有保存到数据库中
这是我的models.py:
class UserProfile(FacebookProfileModel):
user = models.OneToOneField(User)
profilpic = models.ImageField(upload_to="profilpics/", default="/my/picture.jpeg")
我想知道我怎样才能解决这个问题。谢谢您的帮助。您可以使用:
可以将方法添加到模型中:
class UserProfile(FacebookProfileModel):
...
profilepic = ...
def profilepic_or_default(self, default_path="/images/..."):
if self.profilepic:
return self.profilepic
return default_path
并在您的tempalte中使用它:
{{ myuser.profilepic_or_default }}
谢谢,它工作得很好。但我意识到我最初的错误是我把绝对路径放在“default=…”之后,而它应该是“MEDIA\u URL”之后的路径。这是一个非常好的方法:)!当然,蒂姆的解决方案就在它所属的地方。但我喜欢你背后的创造力:)…我从来没有想过这样做。我喜欢它;)
{{ myuser.profilepic_or_default }}