根据选择上传到不同的文件夹 - Django

时间:2017-07-19 12:35:05

标签: python django python-3.x django-models

我一直在阅读django文档,我正在尝试创建一组选择。根据用户选择的选项,文件将保存在不同的文件夹中。虽然我似乎无法找到一种工作方式。

我目前已将此作为我的模特:

from django.db import models

class Document(models.Model):

    Name = models.CharField(max_length=25, blank=True)

    Week_1 = 'Week1'
    Week_2 = 'Week2'
    Week_3 = 'Week3'
    Week_4 = 'Week4'

    Weekly_Choices = (
        (Week_1, 'Week_1'),
        (Week_2, 'Week_2'),
        (Week_2, 'Week_3'),
        (Week_2, 'Week_4')
    )

    Week = models.CharField(max_length=10, choices=Weekly_Choices, default=Week_1, blank=False)
    docfile = models.FileField()

    if Week.choices == Week_1:
        docfile.upload_to = 'documents/'+ Week_1 + '/' + 'Mentee'

虽然,我不知道为什么这不起作用 - 抱歉,我对Django和Python仍然有点新鲜。

我更多地研究了它,我知道有一个Model.get_FOO_display()函数,但这不是我正在寻找的东西。此外,我还查看了django-choices,尽管'get_choice'函数输出了一个字典类型。我希望可能有一种更容易丢失的方法吗?

任何帮助都会有用 - 谢谢:D

2 个答案:

答案 0 :(得分:2)

您可以尝试:

import styles from './styles.scss';

这对你有用!

答案 1 :(得分:0)

除非你在模态字段docfile

中给出upload_to字段,否则它将无效

试试这个

docfile = models.FileField(upload_to=location)

def location(instance, filename):
    if instance.Week == Week_1:
       return 'documents/'+ Week_1 + '/' + 'Mentee' + filename

希望这可以帮助你