¿cómo puedo obtener el enlace de un FileField
? Probé el campo url
, pero da la ruta del archivo:¿Cómo obtener el enlace del archivo en un FileField?
In [7]: myobject.myfilefield.path
Out[7]: u'/home/xxxx/media/files/reference/1342188147.zip'
In [8]: myobject.myfilefield.url
Out[8]: u'/home/xxxx/media/files/reference/1342188147.zip'
me esperaba conseguir http://<mydomain>/media/files/reference/1342188147.zip
¿Cómo puedo conseguir eso? ¿Debo construir la cadena manualmente?
EDITAR
no se estableció Mi MEDIA_URL, pero todavía no puede conseguir que funcione:
settings.py
MEDIA_ROOT = '/home/xxx/media/'
MEDIA_URL = 'http://xxx.com/media/'
models.py
class Archive(models.Model):
#...
file = models.FileField(upload_to="files")
con cáscara
a = Archive()
a.file = "/some/path/to/file.txt"
a.save()
Entonces me pasa por a.path
:
"/some/path/to/file.txt"
y para a.url
:
"http://xxx.com/media/some/path/to/file.txt"
Cuando se hace mediante programación, a.file = "/some/path/to/file.txt"
, el archivo no está subido a MEDIA_ROOT
. ¿Cómo puedo cargar un archivo en el directorio definido por upload_to
, es decir, en mi caso /home/xxx/media/file.txt
?
Uy, MEDIA_URL no se ha establecido. – jul
Pero todavía no puedo obtener lo que quiero. cf mi edición. – jul