【发布时间】:2018-11-02 16:40:00
【问题描述】:
我正在尝试将文件上传到数据库中,但是当我想将函数 uoload 放入并且我希望该函数将文件与用户提交的数据一起存储在根目录中时,例如年份,课程,部分,我得到了他们上传的信息和文件我想存储在那个子文件夹中,我正在使用的代码只将数据存储在 Media_root 中,而不是在地毯中 我该怎么做才能将文件存储在我想要的子文件夹。我是我的模型文档,我存储文档的信息,如作者、标题等。
class File(models.Model):
titulo_file=models.ForeignKey(Document,on_delete=models.CASCADE,null=True,verbose_ name='Título de la Tesis')
file = models.FileField(null=True,blank=True, upload_to=generate_path)
这是我用来上传文件的函数,Int 只用于将文件存储到同名的文件夹中。
def generate_path(instance, filename):
path =os.path.join(instance.file.name,filename)
return path
在我看来,在用户提交信息后,我使用os.path.join,即用提交的信息做路径:
year/course/section
我想将该路径发送到我的 generate_path 并将文件存储在该位置,我尝试使用 session 但它不起作用,我该怎么办?
models.py
class Year(models.Model):
year_number=models.CharField(max_length=10,primary_key=True)
class Course(models.Model):
name=models.CharField(max_length=50,primary_key=True)
class Section(models.Model):
numberSection=models.IntegerField(null=True,blank=True)
year = models.ForeignKey(Year, on_delete=models.CASCADE, null=True)
course = models.ForeignKey(Course, on_delete=models.CASCADE)
thopic_documents=(
('CS','CS'),
('SE','SE'),
('IS','IS'),
('IT','IT'),
)
class Document(models.Model):
title=models.CharField(max_length=200,primary_key=True)
thopic=models.CharField(max_length=50,choices=thopic_documents, default=None,null=True)
class Historial(models.Model):
id_section=models.ForeignKey(Section,on_delete=models.CASCADE)
title_document=models.ForeignKey(Document,on_delete=models.CASCADE,)
【问题讨论】:
-
您能发布包含
year、course和section属性的模型吗?那是Document模型,还是其他模型? -
是其他型号
-
谢谢。因此,如果您有
Document,您将如何查找Section?那可能吗?可以通过Historical或其他模型以某种方式完成吗? -
我浏览了带有历史的部分,部分有模型课程和年份的信息。
标签: python django file-upload