【发布时间】:2019-10-29 16:45:54
【问题描述】:
我正在创建一个表单,允许用户选择图像并使用 Django 和 AJAX 上传它。这个过程工作正常,但问题是上传的图像没有显示在屏幕上,但我确实为它指定了div。
这些是我遵循的步骤:
- 创建处理上传图片的模型。
- 为函数创建路径。
- 创建上传所选图片的函数。
- 创建模板和 AJAX 函数。
models.py:
class photo(models.Model):
title = models.CharField(max_length=100)
img = models.ImageField(upload_to = 'img/')
home.html:
<form method="POST" id="ajax" enctype="multipart/form-data">
{% csrf_token %}
Img:
<br />
<input type="file" name="img">
<br />
<br />
<button id="submit" type="submit">Add</button>
</form>
<h1> test </h1>
<div id="photo">
<h2> {{ photo.title }}</h2>
<img src="{{ photo.img.url }}" alt="{{ photo.title }}">
</div>
$('#ajax').submit(function(e) {
e.preventDefault();
var data = new FormData($('#ajax').get(0));
console.log(data)
$.ajax({
url: '/upload/',
type: 'POST',
data: data,
contentType: 'multipart/form-data',
processData: false,
contentType: false,
success: function(data) {
// alert('gd job');
$("#photo").html('<h2> {{'+data.title+'}}</h2> <img src="{{'+data.img.url+ '}}" alt="{{ photo.title }}">')
}
});
return false;
});
views.py:
def upload(request):
if request.method == 'POST':
if request.is_ajax():
image = request.FILES.get('img')
uploaded_image = photo(img = image)
uploaded_image.save()
photo=photo.objects.first()
# return render(request, 'home2.html')
return HttpResponse(photo)
我期望用户上传图片和我存入数据库的图片后,图片一定要显示在屏幕上。
【问题讨论】:
-
你正试图按照我那天建议的那样显示图像。在这里检查:stackoverflow.com/questions/56493419/…正确检查我的答案你犯了一个小错误
-
@chiragsoni 是的,你是对的,我尝试了你的答案,但它没有显示它,我也没有找到错误。但我怀疑错误出在 success 函数
-
您正确地按照我的回答,您将能够解决它。祝你好运!
-
@chiragsoni 仍然没有找到错误的确切位置,因为当我调试它的工作时,它应该没有显示图像。
-
兄弟我真的很抱歉,但通常情况下,只有当您欣赏他们的回答时,人们才会愿意回答和帮助您,对吧?我已经花时间在这里帮助你了:stackoverflow.com/questions/56493419/…,但你没有赞赏。请养成欣赏他人的习惯,以始终获得好的答案。这只是为了您的利益。
标签: javascript django django-models image-uploading