làm cách nào tôi có thể nhận được liên kết của một FileField
? Tôi đã thử các lĩnh vực url
, nhưng nó mang lại cho các đường dẫn tập tin:Cách lấy liên kết của tệp trong một 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'
Tôi đã chờ đợi để có được http://<mydomain>/media/files/reference/1342188147.zip
Làm thế nào tôi có thể nhận được điều đó không? Tôi có phải xây dựng chuỗi bằng tay không?
EDIT
MEDIA_URL của tôi không được thiết lập, nhưng tôi vẫn không thể lấy nó để làm việc:
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")
trong vỏ
a = Archive()
a.file = "/some/path/to/file.txt"
a.save()
Sau đó, tôi nhận được cho a.path
:
"/some/path/to/file.txt"
và cho a.url
:
"http://xxx.com/media/some/path/to/file.txt"
Khi thực hiện chương trình, a.file = "/some/path/to/file.txt"
, các tập tin được tải lên không MEDIA_ROOT
. Làm cách nào để tải lên tệp trong thư mục được xác định bởi upload_to
, tức là trong trường hợp của tôi /home/xxx/media/file.txt
?
oops, MEDIA_URL chưa được đặt. – jul
Nhưng tôi vẫn không thể có được những gì tôi muốn. cf chỉnh sửa của tôi. – jul