ここで私は2つの解決策を与えています。あなたが尋ねたもの、そして私の提案。
次のコードを使用して、テンプレートフォルダへのアップロード場所を設定します。
from django.conf import settings
image=models.ImageField(upload_to = settings.TEMPLATE_DIRS[0])
上記のコードは、画像をテンプレートディレクトリにアップロードします。
私のおすすめ:
メディアフォルダに画像をアップロードします。次に、を使用しMEDIA_URL
て、ユーザーがそれらをダウンロードできるようにします。次のコードを使用してそれらを定義します。
settings.py
MEDIA_ROOT = 'C:/ghoghnous/HubHub/media'
MEDIA_URL = 'site_media'
urls.py
from django.conf import settings
urlpatterns += patterns('',
url(r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
)
models.py
class SampleModel(models.Model):
image = models.ImageField(upload_to = 'images')
これを使用すると、画像がフォルダにアップロードされますC:/ghoghnous/HubHub/media/images/
。次に、objects.get
またはを使用して必要な画像を取得しますobjects.filter
。
record = SampleModel.objects.get(id = 1)
Iの場合print record.image
、出力はになりますimages/filename.jpg
。これをテンプレートに渡します。次に、次のように画像を表示するか、ダウンロードリンクを提供します。
<a href="{{ record.image.url }}/" >Download</a> #Download link
<img src="{{ record.image.url }}/" /> #To display image
<a href="/site_media/images/file.jpg" >Download</a> #Download static files
テンプレートフォルダに画像を保存することはお勧めできませんので、2番目の方法を使用することをお勧めします。