【发布时间】:2010-02-11 03:46:34
【问题描述】:
我有以下 django 模型:
RESOURCE_DIR = os.path.join(settings.MEDIA_ROOT, 'resources')
class Resource(models.Model):
title = models.CharField(max_length=255)
file_name = models.FilePathField(path=RESOURCE_DIR, recursive=True)
我想在模板中提供该文件的 URL,以便用户可以查看或下载它。
如果我在模板中使用{{ resource.file_name }},它会输出服务器上文件的完整路径,例如如果RESOURCE_DIR='/home/foo/site_media/media' 它输出'/home/foo/site_media/media/pdf/file1.pdf' 而我想要的是'pdf/file1.pdf'。在管理员或模型窗体中,该选项在选择小部件中显示为'/pdf/file1.pdf'。所以显然可以按照我的要求去做。当然,额外的斜线并不重要。如果我设置recursive=False,那么我可以删除最后一个斜杠之前的路径部分。
如何获得与模型表单或管理员相同的结果?
【问题讨论】: