2010-11-24 24 views
0

J'essaie de faire ce qui suit avec django et céleri. Voici une version simplifiée de ce que je suis en train de faireComment télécharger un fichier hors site et l'ajouter à ma base de données dans Django avec céleri?

@task   
def dl_and_save_to_documents(document_pk): 
     document = Document.objects.get(pk=document_pk) 
     f = urlopen("some/url/etc/file.pdf") 
     document.pdf_file=f 
     document.save() 

Aucune erreur n'est renvoyée mais pdf_file reste null. Des idées?

Merci!

+0

Le même code fonctionne-t-il sans utiliser Celery? Vous devriez d'abord établir cela. 'urlopen' renvoie un objet semblable à un fichier, pas le contenu. – asksol

Répondre

1

Vous pouvez utiliser une méthode de récupération de fichier différente. C'est à dire. urllib.urlretrieve().

0

Essayez grab au lieu de urllib. Cela vous donne une belle enveloppe autour de cURL lib, en fait c'est un navigateur sans tête mais actuellement sans support JS.