web-dev-qa-db-fra.com

Récupère le chemin de fichier absolu de FileField d'une instance de modèle dans Django

J'ai une page où les gens peuvent télécharger des fichiers sur mon serveur.

Je veux faire quelque chose avec le fichier en céleri. Donc, j'ai besoin de connaître le chemin de fichier absolu du FileFiled téléchargé de mon modèle.

Disons que j'ai interrogé le modèle et obtenu l'instance. Maintenant, je dois obtenir le chemin de fichier absolu, y compris le chemin de fichier.

obj = Audio.objects.get(pk=1)

J'essaie actuellement obj.filename et il imprime uniquement le nom du fichier et non le chemin absolu.

Je sais que je peux obtenir le chemin de téléchargement dans lequel je suis entré upload_to et le répertoire multimédia, mais je me demandais s'il y avait une approche plus DRY et automatique.

Comment obtenir le absolute path de file qui est un fichier classé dans obj?

6
Kotlinboy

J'ai trouvé une réponse.

Je dois faire un .path sur le FileField

Si je fais

obj.audio_file.path 

obj est l'instance de modèle que j'ai interrogée et audio_file est le champ de fichier

21
Kotlinboy