как я могу получить ссылку FileField
? Я попробовал поле url
, но оно дает путь к файлу :
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'
. Я ожидал получитьhttp://<mydomain>/media/files/reference/1342188147.zip
Как я могу это получить? Должен ли я создавать строку вручную?
РЕДАКТИРОВАТЬ
URL-адрес моего МЕДИА _не был установлен, но я все еще не могу заставить его работать:
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")
в скорлупе
a = Archive()
a.file = "/some/path/to/file.txt"
a.save()
Тогда я получаю заa.path
:
"/some/path/to/file.txt"
и дляa.url
:
"http://xxx.com/media/some/path/to/file.txt"
При программном выполнении a.file = "/some/path/to/file.txt"
файл не загружается в MEDIA_ROOT
. Как я могу загрузить файл в каталог, определенный upload_to
, то есть в моем случае /home/xxx/media/file.txt
?