これは私のMEDIA_ROOT/MEDIA_URLを初めて使用したものですが、私は構成によって少し混乱しています。私は元の画像とサイズ変更されたコピーを保存する画像アップロードフォームを持っています。私は両方の画像を自分のMEDIAフォルダに保存したいが、それを分けたい。現在の構造:Django MEDIA_ROOT、MEDIA_URL etc
project/
----apps/
--------appOne/
------------static/
------------templates/
------------__init__.py
------------models.py
------------urls.py
------------views.py
--------__init__.py/
----MEDIA/
----project/
--------__init__.py
--------settings.py
--------urls.py
----manage.py
私はMEDIA /メディア/のように、MEDIA /メディアフォルダ内のフォルダにリサイズした画像を、元のアップロードされた画像を保存したいと思います。今、それを3回ネストだ:
original image goes to ---> MEDIA/media/
resized image goes to ---> MEDIA/media/media
私は私の設定が間違っていほとんど肯定的だが、私は長すぎると何が動作しているため、それをいじってきました。それは、すべてのチュートリアルでは設定が異なっているようです。好みの構造が何であるか、または現在の設定が私が期待した通りに動作しない理由がわかりません。ここで
は私のsettings.pyです:MEDIA_ROOT = os.path.join(BASE_DIR,'MEDIA')
MEDIA_URL = "media/"
models.py:
from django.conf import settings
from smartfields import fields
from smartfields.dependencies import FileDependency
from smartfields.processors import ImageProcessor
class Image(models.Model):
client = models.ForeignKey(Client, null=True, blank=True)
model_pic = fields.ImageField(upload_to=settings.MEDIA_URL, dependencies=[
FileDependency(processor=ImageProcessor(
format='PNG', scale={'max_width': 500, 'max_height': 500}))
])
views.py:
def upload(request):
form = ImageUploadForm(request.POST, request.FILES)
if form.is_valid():
client = Client.objects.get(id=request.session['id'])
image = Image.objects.create(client=client, model_pic=form.cleaned_data['image'])
return redirect(reverse('cphh:gallery'))
def show_images(request):
context = {
'images': Image.objects.all().order_by('-created_at'),
'media_url': settings.MEDIA_URL,
}
return render(request,'cphh/gallery.html', context)
トリプルネストされたアップロードした画像が適切にレンダリングします私のテンプレート:
{% for image in images %}
<img class="gallery-image" src="{{media_url}}{{ image.model_pic }}"
{% endfor %}
https://docs.djangoproject.com/en/1.10/ref/settings/#media-url https://docs.djangoproject.com/en/1.10/ref/も参照してください。設定/#media-root https://easy-thumbnails.readthedocs.io/ja/2.1/ –