我想让每个用户上传一个文本文件,以便他只能看到他上传的文件。我还希望他上传的文件存储在他自己的文件夹中,如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)
答案 0 :(得分:3)
修改强>
对最后一次失礼抱歉。
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
路径。这是存储文件的地方。pk
而不是用户名。但它取决于你。