首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用django.core.files.File

如何使用django.core.files.File
EN

Stack Overflow用户
提问于 2010-04-16 09:41:55
回答 3查看 889关注 0票数 2

docs for django.core.files.File暗示我可以这样做:print File(open(path)).url,但是文件对象没有'url‘属性,然而,django.db.models.fields.files.FieldFile扩展了文件并拥有文件文档中描述的所有属性,但是如果不给它一个模型字段,我就不能创建一个。

我想要的就是像django.core.files.File文档(上面的链接)所说的那样,把一个python文件命名为'url‘,'path’和'name',有人能帮上忙吗?

干杯,杰克

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-04-16 10:04:47

不管Django文档是怎么说的,如果你看一下File类的代码,我看不到它。遵循Ignacio的建议,您可以从Django File派生,并使用MEDIA_ROOT和MEDIA_URL设置来实现您正在寻找的属性……

代码语言:javascript
复制
from django.core.files import File
from django.conf import settings

class UrlFile(File):
    def _get_url(self):
        root_name = self.name.replace(settings.MEDIA_ROOT, '')
        return '%s%s' % (settings.MEDIA_URL, root_name)
    url = property(_get_url)
票数 2
EN

Stack Overflow用户

发布于 2010-04-16 09:45:04

如果你派生自file,那么你可以赋予它任何你喜欢的属性:

代码语言:javascript
复制
class MyFile(file):
  def foobar(self):
    print 'foobar'

f = MyFile('t.txt', 'r')
f.foobar()
票数 0
EN

Stack Overflow用户

发布于 2010-04-16 12:37:08

谢谢你们。我已经通过编写一个自定义类解决了我的问题,如果我可以使用它,它不会像Django类那样强大,但它适用于我当前的应用程序。我会开一张关于医生的罚单。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2650072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档