Wie kann ich den Link eines FileField
bekommen? Ich versuchte, das url
Feld, aber es gibt den Dateipfad:Wie bekomme ich den Link der Datei in einem 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'
Ich erwartete http://<mydomain>/media/files/reference/1342188147.zip
zu bekommen Wie kann ich das? Muss ich die Zeichenfolge manuell erstellen?
EDIT
Meine MEDIA_URL nicht gesetzt war, aber ich kann immer noch nicht daran arbeiten:
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")
in der Schale
a = Archive()
a.file = "/some/path/to/file.txt"
a.save()
Dann bekomme ich für a.path
:
"/some/path/to/file.txt"
und für a.url
:
"http://xxx.com/media/some/path/to/file.txt"
Wenn programmatisch getan, a.file = "/some/path/to/file.txt"
, wird die Datei in MEDIA_ROOT
nicht hochgeladen. Wie kann ich eine Datei in das Verzeichnis hochladen, das durch upload_to
definiert ist, d. H. In meinem Fall /home/xxx/media/file.txt
?
oops, wurde MEDIA_URL nicht gesetzt. – jul
Aber ich kann immer noch nicht bekommen, was ich will. Siehe meine Bearbeitung. – jul