相关疑难解决方法(0)

Django FileField,在运行时确定upload_to

我正在尝试设置我的上传,以便如果用户joe上传文件,则转到MEDIA_ROOT/joe,而不是让每个人的文件都转到MEDIA_ROOT.问题是我不知道如何在模型中定义它.以下是目前的情况:

class Content(models.Model):
    name = models.CharField(max_length=200)
    user = models.ForeignKey(User)
    file = models.FileField(upload_to='.')
Run Code Online (Sandbox Code Playgroud)

所以我想要的不是'.' 作为upload_to,让它成为用户的名字.

据我所知,从Django 1.0开始,您可以定义自己的函数来处理upload_to,但该函数不知道用户是谁,所以我有点迷失.

谢谢您的帮助!

python django django-models

127
推荐指数
3
解决办法
5万
查看次数

Django文件上传和重命名

用户正在上传特定问题的.c文件.我希望将文件重命名为'userid_questionid.c'

我的models.py是:

from django.db import models

class users(models.Model):
    username = models.CharField(max_length=20)
    password = models.CharField(max_length=20)
    score=models.IntegerField(max_length=3)
    def __unicode__(self):
        return self.username

class questions(models.Model):
    question = models.TextField(max_length=2000)
    qid=models.IntegerField(max_length=2)
    def __unicode__(self):
       return self.qid

def content_file_name(instance, filename):
    return '/'.join(['uploads', instance.questid.qid, filename])


class submission(models.Model):
    user = models.ForeignKey(users)
    questid = models.ForeignKey(questions)
    file = models.FileField(upload_to=content_file_name)
Run Code Online (Sandbox Code Playgroud)

我试过这个.但它只是创建用户的文件夹并将文件保存在其中.请帮忙.谢谢.我需要重命名该文件.

python django foreign-keys

8
推荐指数
1
解决办法
8268
查看次数

标签 统计

django ×2

python ×2

django-models ×1

foreign-keys ×1