【发布时间】:2021-04-03 18:10:43
【问题描述】:
目前正在制作一个基本的 Django 项目,遵循 youtube 上的详细教程。一切顺利,我通常会尝试自己调试问题,我不会问我是否被卡住了。
问题:
此代码旨在检查重新上传后的图像大小,然后将其格式化为正方形,但查看链接的图像时,情况并非如此。我的代码错了吗?还有其他方法可以检查和验证图像吗?
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
image = models.ImageField(default="default.jpg", upload_to="profile_pics")
def __str__(self):
return f'{self.user.username} Profile'
def save(self, *args, **kwargs):
super().save(*args, **kwargs)
img = Image.open(self.image.path)
if img.height > 300 or img.width > 300:
output_size = (300,300)
img.thumbnail(output_size)
img.save(self.image.path)
更新:
【问题讨论】:
-
链接的图像是 1920x1040,所以它应该触发 safe() 中的 if 语句。你在观察什么行为?您尝试过什么来解决问题?
-
因此,当我尝试上传不是正方形的图像时,它会在显示时拉伸图像,而不是呈现为正方形。我已经为此尝试了几个灵魂,但没有鸟。注意:我在这些图像上的唯一样式是 boostrap 样式“class="rounded-circle""
-
您的原始代码不会使图像变成正方形。我在下面分享的第二个 sn-p 代码告诉你如何做到这一点。如果这回答了您的问题,请将其标记为已解决。如果您需要前端方面的帮助,请打开一个新问题。
标签: python django django-models django-file-upload