我想在base.html模板中编辑的背景图片。我当时在考虑使用模型和表格,这样用户/管理员可以将新图像上传到后台。我认为我遇到的问题是直接引用base.html模板,因为它从未被直接调用过。
我当时想只是顺应风格,或者直接编辑CSS也很酷。我只是只能切换不同的CSS预写代码
我尝试过使用base_view(request),但是不起作用 (永远不会调用base.html,所以我认为这就是原因,显然扩展页面不会修改base.html)
def base_view(request):
context = {
'post': BackgroundImage.objects.last()
}
return render(request, 'base.html', context)
这就是我所拥有的:
models.py:
class BackgroundImageModel(models.Model):
image = models.ImageField(default="default.jpg", upload_to='background_pics')
author = models.ForeignKey(User, on_delete=models.CASCADE)
def save(self):
super().save()
img = Image.open(self.image.path)
if img.height > 2000 or img.width > 2000:
output_size = (2000, 2000)
img.thumbnail(output_size)
img.save(self.image.path)
views.py:
class BackgroundImage(LoginRequiredMixin, UserPassesTestMixin, UpdateView):
model = BackgroundImageModel
fields = ['image']
base.html:
{% if background %}
<body style="background:
url({{ background.image.url }})
repeat fixed center;
margin: 5rem 0 2rem 0;">
{% else %}
<body style=" margin: 5rem 0 2rem 0;">
{% endif %}
答案 0 :(得分:0)
您在post
中以context
的形式传递图像,但是在html中使用了background
。
尝试:
{% if background %}
<body style="background:
url({{ post.image.url }})
repeat fixed center;
margin: 5rem 0 2rem 0;">
{% else %}
<body style=" margin: 5rem 0 2rem 0;">
{% endif %}