當我嘗試從媒體根目錄中獲取該圖像時,我正在收到此損壞的圖像。請向您表示不要向我展示文檔或以前問題的鏈接。我已經嘗試了這些東西,但我仍然得到這張破碎的圖像。在開發環境中爲靜態圖像提供服務
Models.py:
class BasicModel(models.Model):
name = models.CharField(max_length=200)
dob = models.DateField()
photo = models.ImageField(upload_to='sample')
class BasicModelForm(ModelForm):
class Meta:
model = BasicModel
Views.py:
def BasicView(request):
if request.method == 'POST':
form = BasicModelForm(request.POST, request.FILES)
if form.is_valid():
data = form.save()
return preview(request, data.id)
else:
form = BasicModelForm()
return render_to_response("unnamed.html", {'form': form}, context_instance=RequestContext(request))
def preview(request, id):
obj = get_object_or_404(BasicModel, pk=id)
return render_to_response("preview.html", {'obj': obj})
Settings.py:
MEDIA_ROOT = '/home/nirmal/try/files/'
MEDIA_URL = 'http://localhost:8000/files/'
Urls.py:
url(r'^unnamed/$', 'unnamed.views.BasicView'),
url(r'^files/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),
Preview.html:
<html>
<body>
{{ obj.name }}
{{ obj.dob }}
<img src="{{ MEDIA_URL }}sample/{{ obj.photo }}" />
</body>
</html>
任何人都可以幫助我嗎?
謝謝!
是這樣定義的。順便說一句,謝謝..它現在工作。 – rnk 2012-03-01 17:37:18
爲什麼第一個語法錯了?兩者都給出相同的URL http:// localhost:8000/files/sample/qlimp.jpg – rnk 2012-03-01 17:38:02
這是ipdb的一項工作。運行pip install ipdb。然後在你的視圖中輸入「import ipdb; ipdb.set_trace()」。在那裏,你可以輸入「form.instance.photo.url」或「從django.conf.settings import MEDIA_URL; MEDIA_URL + form.instance.photo」,並比較結果。評論是簡短的闡述,但你可以閱讀我關於調試的文章:http://blog.yourlabs.org/debugging-python-and-django-code – jpic 2012-03-01 17:40:34