是否可以获取刚刚使用 Django Filer 上传的文件的绝对 URL?
我的问题是这样的:
我正在使用 Django Filer 上传音乐。然后我想将此文件提交给 Django Celery 以使用他们的 API 上传到 Mixcloud。但..
我不知道如何获取文件的 URL。我没有使用视图,我只想使用管理员,获取刚刚上传的文件并发送到 Celery 以使用他们的 API 上传到 Mixcloud。但我只能将模型中的对象导入芹菜。
我的模型:
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)
我的任务:
@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