我正试图在模型中创建一个字段,该字段应该存储注册用户的图像. 此映像应重命名并存储在单独的用户目录(如media/users/10/photo.jpeg)中.

我搜索了很多,但仍然找不到如何干净、正确地完成它.在我看来,许多网站需要相同的功能,这应该在django文档中,但事实并非如此.

推荐答案

您想要在ImageField上使用"UPLOAD_TO"选项

#models.py
import os

def get_image_path(instance, filename):
    return os.path.join('photos', str(instance.id), filename)

class UserProfile(models.Model):
    user = models.ForeignKey(User, unique=True)
    profile_image = ImageField(upload_to=get_image_path, blank=True, null=True)

这是直接来self 的一个项目的代码.上传的图像将达到/MEDIA_ROOT/photos/<user_id>/filename

对于您想要的内容,只需将"照片"字符串更改为"用户"(以def get_image_path为单位

以下是文档中关于它的一小部分,在FileField个细节之下

Django相关问答推荐

如何在Django表单中传递self.请求数据?

APIView查询未返回任何结果

在 Trunc 的 kind 属性中使用字段

Django通用列表视图与多查询搜索

从url参数过滤的Django日期范围返回空查询集

有谁知道是否可以将您的 Django Heroku 应用程序放到 App Store/Google Play 上?

如何在 Django 中将下一个 8 月 1 日添加为 DateTimeField 默认值

从python中的URL获取查询字符串的最佳方法?

为什么 django 1.7 会为字段 Select 的变化创建迁移?

如何在 Django 测试框架中修改会话

ImportError:无法导入设置

Django BigInteger自动增量字段作为主键?

Django 模板:通过扩展模板覆盖包含的子模板块

这是验证 Django 模型字段的方法吗?

如何创建一个在复选框右侧显示复选框标签的 Django 表单?

在 docker 容器中创建 django 超级用户而不输入密码

django 管理员操作而不 Select 对象

如何使用 Requests 库执行 HTTP DELETE 请求

过滤 Django 数据库中包含数组中任何值的字段

通过 django 分页仅显示部分页码