首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django-filer获得绝对URL和Django芹菜上传

Django-filer获得绝对URL和Django芹菜上传
EN

Stack Overflow用户
提问于 2014-10-27 10:32:40
回答 1查看 1.6K关注 0票数 1

是否有可能获得一个文件的绝对URL刚刚上传了Django Filer?

我的问题是:

我在用Django Filer上传音乐。然后,我想将这个文件提交给Django芹菜,然后使用他们的API上传到Mixcloud。但是..。

我不知道如何获得文件的URL。我不使用视图,我只想使用管理,抓取刚刚上传的文件,并发送到芹菜,以上传到混合云使用他们的API。但我只能把模型中的物体导入芹菜。

我的模型:

代码语言:javascript
复制
class MixcloudUpload(models.Model):
    files = FilerFileField(null=True, blank=True)
    data = {'name': 'API Test'}


    def save(self, *args, **kwargs):

        super(MixcloudUpload, self).save(*args, **kwargs)
        from .tasks import uploadtask
        uploadtask.delay(self.id)

我的任务:

代码语言:javascript
复制
@celery_app.task()
def uploadtask(request):
    sleep(5)
    # Update the state. The meta data is available in task.info dicttionary
    # The meta data is useful to store relevant information to the task
    # Here we are storing the upload progress in the meta.
    post_url = 'https://api.mixcloud.com/upload/?access_token=ugY'
    from .models import MixcloudUpload
    mp3 = MixcloudUpload.files
    data = MixcloudUpload.data
    files = ({'mp3': open(mp3)})
    headers = {'enctype': 'multipart/form-data'}
    r = requests.post(post_url, headers=headers, files=files, data=data, verify=True)
    return r, r.json(), request
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-27 10:52:48

Django Filer在上传时设置uploaded_at (datetime字段)模型属性。您可以对此进行筛选,以获得新的上传以转发到Mixcloud。

至于绝对的网址。在这方面,filer文档有点棘手。但是有两个属性可以使用:

  • File.objects.all()[0].path是文件系统上文件的路径。
  • File.objects.all()[0].url,域后面的url路径,例如:/media/filer_public/23/23/34565b67-e1de-41da-3132-1403c335fdd4/test_img.png/。你需要自己来弥补你的域名。因此,完整的路径应该类似于:"http" + urlencode(site_obj.domain) + filer_obj.url
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26585556

复制
相关文章

相似问题

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