我想創建一個可以上傳和顯示圖像的django應用程序。不過,由於無法正常工作,因此遇到了一些麻煩。當我嘗試從我的表單上傳圖像時,會發生什麼,它不會顯示在我的列表中。所以我似乎有問題顯示我的圖像。Django:想創建一個可以上傳和顯示圖像的應用程序
這是我迄今爲止所做的。
編輯 - 代碼更新:我已經做了一些需要改變。現在仍然有問題。我的程序不是打印出圖像,而是打印保存圖像的目錄。
例如,{{comment.photo}}將打印出路徑C:/Users/AQUIL/Desktop/myproject/images/P1000992.JPG
。但我想在屏幕上看到圖像。如何將圖像打印到屏幕上?
models.py
class Comment(models.Model):
name = models.CharField(max_length = 40)
datetime = models.DateTimeField(default=datetime.now)
photo = models.ImageField(upload_to='C:/Users/AQUIL/Desktop/myproject/images', blank=True, null=True)
note = models.TextField()
def __unicode__(self):
return unicode(self.name)
Views.py
def home(request):
comments = None
try:
comments = Comment.objects.order_by('-datetime')
except:
return HttpResponseNotFound()
return render_to_response('home.html', {'comments':comments}, context_instance=RequestContext(request))
def add_notes(request):
comments = Comment.objects.all()
if request.method == 'POST':
form = CommentForm(request.POST or None, request.FILES)
if form.is_valid():
comments.datetime = datetime.now()
form.save(True)
return HttpResponseRedirect(reverse(home))
else:
form = CommentForm()
return render_to_response('form.html', {'form':form,'comments':comments}, context_instance = RequestContext(request))
forms.py
class CommentForm(forms.ModelForm):
class Meta:
model = Comment
exclude =('datetime')
home.html的
{% extends "base.html" %}
{% block content %}
<H2>List of Comments</H2>
<div style="overflow:auto;padding: 10px; border:1px solid black; height:150px; width:700px;">
{% for comment in comments %}
{{comment.photo}}<br/>
<b>Posted by: {{ comment.name }} Date: {{ comment.datetime.date }} Time: {{comment.datetime.time}}</b><br/>
<div style="font-size:125%">{{ comment.note }}</div><br/>
{% endfor %}
</div>
{% endblock %}
這是很多的信息,但我希望這會有所幫助。 form.html
{% extends "base.html" %}
{% block content %}
<h3>Add Notes</h3>
<form enctype="multipart/form-data" action="" method="POST">{% csrf_token %}
<table>
{{form.as_table}}<br/>
</table>
<input type="submit" value="Save" STYLE="background-color:#E8E8E8; color:#181818 "/>
</form>
{% endblock %}
OK,所以你必須ENCTYPE = 「的multipart/form-data的」 添加到您的表單標籤,否則將無法上傳你的任何圖像 –
你必須在'settings.py'中配置更多的東西;像「MEDIA_ROOT」或「MEDIA_URL」之類的東西。然後,您必須將圖像目錄放在html'img'標籤內,這可能看起來像:''。請參閱[stackoverflow django圖像問題](http://stackoverflow.com/questions/6777732/want-to-display-an-image/6778220#6778220)瞭解更多Django的細節和[w3schools img標籤](http:// www .w3schools.com/tags/tag_img.asp)以獲取更多HTML細節。 –