gpt4 book ai didi

django - 如何在 django 中为每个用户创建单独的文件夹并让用户在该文件夹中上传文件?

转载 作者:行者123 更新时间:2023-12-04 12:50:37 26 4
gpt4 key购买 nike

我想让每个用户上传一个文本文件,这样他就只能看到他上传的文件。我还希望他上传的文件存储在他自己的文件夹中,例如 home/ubuntu/documents/username/

我的 models.py 看起来像这样 -

from django.db import models
from django.contrib.auth.models import User
import os

class UserProfile(models.Model):

user = models.OneToOneField(User)

def __unicode__(self):
return self.user.username


def get_upload_path(instance, filename):
return os.path.join('documents', instance.owner.username, filename)

class Document(models.Model):
docfile = models.FileField(upload_to=get_upload_path)

最佳答案

编辑

对最后的失礼感到抱歉。

def get_upload_path(instance, filename):
return 'documents/{0}/{1}'.format(instance.user.username, filename)

class Document(models.Model):
user = models.ForeignKey(User, null=True)
docfile = models.FileField(upload_to=get_upload_path)

另外, see documentation再举一个例子。

笔记
  • 做配置 MEDIA_ROOT设置文件中的路径。这是文件的存储位置。
  • 不要忘记编写另一种方法,该方法将在用户更改其用户名时更改其文件夹的名称。
  • 上面第 2 点的替代方案将使用 pk而不是用户名。但这取决于你。
  • 关于django - 如何在 django 中为每个用户创建单独的文件夹并让用户在该文件夹中上传文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30679661/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com