Django - FilePathField返回错误的路径

时间:2016-11-22 08:16:12

标签: python django django-staticfiles

我试图允许管理员在创建新的Language对象时从标记中进行选择。

有一个文件夹mainapp/static/img/flags/550px/,其中包含*.png个标记图片。

class Language(models.Model):
    shortcut = models.CharField(max_length=40,
                                help_text=_('Shortcut of the language'),
                                unique=True)

    name = models.CharField(max_length=40,
                            help_text=_('Name of the language'),
                            unique=True, verbose_name=_("Language"))

    flag = models.FilePathField(path='mainapp/static/img/flags/550px'),default='/static/img/icons/check-icon.png')
    #flag = models.FilePathField(path='{}\mainapp/static/img/flags/550px'.format(settings.BASE_DIR),default='/static/img/icons/check-icon.png')

问题是Django在html中没有解决这些路径。有这样的路径:mainapp/static/img/flags/550px\es.png这是一个问题,因为Django从/static/开始,而不是/mainapp/

另一方面,当我放static/img/flags/550px时,它不允许我从文件夹中选择。

所以主要的问题是当管理员从标志中选择时,它会在开头保存mainapp/static..的路径。我只想保存static/..

你知道我该怎么做吗?

2 个答案:

答案 0 :(得分:0)

您是否指定了STATIC_URLSTATICFILES_DIRS

尝试将此添加到您的项目settings.py

STATIC_URL = '/static/'
STATICFILES_DIRS = ('PATH_TO_STATIC',)

答案 1 :(得分:0)

在设置中执行

STATICFILES_DIRS = ['path/to/mainapp/static']