首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >'FileDescriptor‘对象没有属性'path’

'FileDescriptor‘对象没有属性'path’
EN

Stack Overflow用户
提问于 2019-03-17 18:04:44
回答 1查看 1.2K关注 0票数 0

在Django的管理中上传文件时,我试图使用信号创建和重命名该文件的副本。但是,我收到以下错误:

'FileDescriptor‘对象没有属性'path’

模型

代码语言:javascript
复制
class Template(models.Model):
    organization = models.ForeignKey(Organization, on_delete=models.CASCADE)
    name = models.CharField(max_length=255)

    def org_folder(self, filename):
        path = "templates/%s/%s/%s" % (self.organization.name, self.name, filename)
        return path

    docxfile = models.FileField(upload_to=org_folder)

信号

代码语言:javascript
复制
@receiver(post_save, sender=Template)
def create_clean_docxfile(sender, instance, *args, **kwargs):
    if sender is Template:
        file = Template.docxfile.path
        copyfile(file, 'temp.zip')

有什么建议吗?

更新

根据丹尼尔的建议,我清除了错误。我必须将信号更新如下:

代码语言:javascript
复制
@receiver(post_save, sender=Template)
def create_clean_docxfile(sender, instance, *args, **kwargs):
    file = instance.docxfile.path
    copyfile(file, 'temp.zip')
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-17 18:08:29

发送者是类。您需要访问实例,该实例由实例参数提供。(你不需要那个if语句。)

代码语言:javascript
复制
def create_clean_docxfile(sender, instance, *args, **kwargs):
    file = instance.docxfile.path
    copyfile(file, 'temp.zip')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55210251

复制
相关文章

相似问题

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