10

以下是 Django 应用程序的模型。让应用程序称为 MyApp。这个想法是让每个应用程序都在 MEDIA_ROOT 下拥有它的文件夹。

class MyModel(models.Model):
    .... #Other fields
    datoteka = models.FileField(upload_to = 'MyApp',null = True)

有没有办法从某个地方获取应用程序的名称并删除硬编码的MyApp.

是一个类似的问题,但是我无法访问模型中的请求对象。

4

2 回答 2

14

app_label属性中有一个_meta属性。请看这个stackoverflow问题

于 2013-09-28T21:24:05.920 回答
3
from os import path

def _get_upload_to(instance, filename):
    return path.join(instance._meta.app_label, 'subdir', filename)

class MyModel(models.Model):
    ....
    datoteka = models.FileField(upload_to=_get_upload_to, ...)

将导致“MyApp/subdir”上传路径。

于 2016-05-31T13:48:30.427 回答