写真をギャラリーデータベースに保存し、必要に応じて引き出すことで、フォトギャラリーを作成しようとしています。
ただし、URL で画像を公開する方法の問題に遭遇しました。私のテンプレートでは、images/photo.jpg であることが判明した写真の URL を返します。ただし、私の開発サーバーでは、URL 192.0.0.1:8000/images/photo.jpg (存在しません) を入力すると、画像を表示できません。urls.py を手動で改ざんせずに、オブジェクトによって提供される URL を介して URL/画像にアクセスできるようにする方法はありますか? そうでない場合、Django が .url フィールドを提供するのはなぜですか? 推奨される URL フィールドはこれだけですか?
私の見解:
def gallery(request):
base_gallery = gall.objects.get(name="base")
base_list = base_gallery.photos.all()
return render_to_response('gallery.html',
{'list_of_images':base_list},
context_instance = RequestContext(request),
)
テンプレート:
{% extends "index.html" %}
{% block body_content %}
{% for photo in list_of_images %}
{{ photo.image.url }}
{% endfor %}
{% endblock %}
モデル:
from django.db import models
class photo(models.Model):
name = models.CharField(max_length=50,blank=True,null=True)
source_descr = models.CharField(max_length=100,blank=True,null=True)
image = models.ImageField(upload_to='images')
class gallery(models.Model):
name = models.CharField(max_length=50)
photos = models.ManyToManyField(photo)