Jak mogę uzyskać link do FileField
? Próbowałem pole url
, ale daje ścieżkę pliku:Jak uzyskać łącze do pliku w 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'
Spodziewałem się dostać http://<mydomain>/media/files/reference/1342188147.zip
Jak mogę odebrać? Czy muszę ręcznie budować ciąg?
EDIT
Moja MEDIA_URL nie została ustalona, ale nadal nie mogę zmusić go do pracy:
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")
skorupek
a = Archive()
a.file = "/some/path/to/file.txt"
a.save()
Potem dostać za a.path
:
"/some/path/to/file.txt"
i a.url
:
"http://xxx.com/media/some/path/to/file.txt"
Kiedy zrobić programowo, a.file = "/some/path/to/file.txt"
, plik nie jest dodany do MEDIA_ROOT
. Jak mogę załadować plik do katalogu określonego przez upload_to
, tj. W moim przypadku /home/xxx/media/file.txt
?
oops, MEDIA_URL nie był ustawiony. – jul
Ale nadal nie mogę dostać tego, czego chcę. cf moja edycja. – jul