当前位置: 首页 > 知识库问答 >
问题:

当用户被删除时,如何防止删除默认图像?

夏英发
2023-03-14

我有一个用于用户配置文件图像的模型,当我删除具有默认图像的用户时,默认图像也会被删除。我相信这是必须的,因为我设置了on_delete=models.CASCADE。

我尝试在ImageField中启用_delete=PROTECT,但它无法识别该属性。

from django.db import models
from django.contrib.auth.models import User
from PIL import Image

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)

共有1个答案

萧伟兆
2023-03-14

delete=models.PROTECT上的models.ForeignKey的参数,其目的是用于关系。

在您的情况下,您需要创建自己的类型的ImageField类,方法是扩展它并用所需的功能覆盖原始的类删除方法。

 类似资料:
  • 问题内容: 在我的JFrame中,我具有默认的咖啡图标。我要删除它。但是当我做setIconImage(null)时不起作用。谁能告诉我有关如何完全删除图标的解决方案 问题答案: 创建由一个像素(更好地透明)组成的图标并使用它。如果您需要这样的图标,请与我联系。我会寄给你。

  • 我有一个模范国家,因此有一个表国家。countries表作为iso国家和货币代码的集合,不应该减少这些内容(在我用种子数据填充之后)。因为Country是ActiveRecord::Base的一个子类,所以它继承了诸如destroy、delete_all等类方法来删除记录。我正在寻找一种解决方案,以防止在模型级别删除记录。 Ofc。我知道我可以使用面向对象的方法来解决这个问题,方法是重写这个方法(

  • 如何禁用这两个checkstyle规则文件,使它们不再困扰我?

  • 介绍 我正在构建firebase web客户端应用程序。我想设置Firebase数据库规则。 新用户注册到Firebase应用程序。Firebase给他一个用户。UID。 然后,管理员删除或禁用Firebase管理控制台中的用户。 用户刷新客户端应用程序。 (我发现)用户仍然可以写入Firebase数据库,即使他的帐户已被删除/禁用。 ... 目标/意图 我想设置一个规则,当用户不存在或在管理控制

  • 问题内容: 如果你这样做 然后,当您看着时,您就会得到。(很公平。) 如果这样做,您会得到。 基本上,我正在寻找一种将其转换为string的方法。 显然,在现实生活中,我无法控制JSON输入,而是从Web服务获取JSON …我想使用浏览器的JSON解析器解析JSON,并能够识别数字值和。 除了手动读取JSON字符串外,还有什么方法可以做到这一点?在这种情况下,这实际上是不可能的,为了提高速度,我需

  • 我创建了一个Azure函数,在每次用户上传图片到我的存储容器时创建一个缩略图。 我的问题是,当用户删除图片时,如何删除缩略图?我可以使用Blob触发器吗?我应该使用时间触发器来检查哪个缩略图没有相关联的图片并删除该缩略图吗?