python - 删除用户时如何删除与用户关联的所有文件
问题描述
我正在尝试在 Django 中创建一个 Web 应用程序。在这里我在用户模型中创建了不同的字段,包括个人资料图片和其他图片。当我删除用户时,与用户关联的文件不会被删除。我想删除删除用户时的文件,个人资料图片和其他图片。
我正在使用 django2.2,并且我自定义了自己的用户模型和管理面板。在我的用户模型中,我添加了“个人资料图片”字段和“简历”字段。当我在我的模型中添加一个用户时,个人资料图片存储在'Media/"%username/"'目录中。我想在删除用户时删除与用户关联的文件。所以我写了'on_delete=.. ' 在用户名的()中,但它给出了一个错误。那么有什么可能的方法吗?
import ..
import os
def user_directory_path(instance, filename):
return os.path.join('media', instance.username, filename)
class User(AbstractBaseUser):
username = models.CharField(max_length=200, unique=True, on_delete =
os.remove(str(user_directory_path)))
profile_photo = models.ImageField(default='media/download(1).png',
upload_to = user_directory_path)
cv = models.FileField(upload_to = user_directory_path)
active = models.BooleanField(default=True)
staff = models.BooleanField(default=False)
admin = models.BooleanField(default=False)
moderator = models.BooleanField(default=False)
date_joined = models.DateTimeField(_('date joined'), default=timezone.now)
我想以这种方式删除文件
username = models.CharField(max_length=200, unique=True, on_delete =
os.remove(str(user_directory_path)))
我也试过这个
username = models.CharField(max_length=200, unique=True, pre_delete=os.rmdir(user_directory_path))
但是这些错误来了
TypeError: rmdir: path should be string, bytes or os.PathLike, not function
解决方案
推荐阅读
- python-3.x - 写入文件时出现 Apache Spark o27.csv 错误
- html - 需要帮助将页脚的内容居中
- python - 阻塞 Tyk Gateway 中间件导致请求排队
- web-manifest - android“安装应用程序”导致“添加到主屏幕”具有不同的图标
- firebase - Flutter Firestore 快照正在返回数据,但 Firestore 数据库为空
- c# - 列出存储桶目录中的对象
- sql - 简化 PostgreSQL 上的多个关系表
- firebase - Firestore Flutter 中的搜索功能
- php - 根据多个值改变数组的顺序是关联数组php
- firebase - 在 null 上调用了 getter 'user'