我正在创建一个捐赠网络应用程序。我希望用户能够上传他们捐赠的物品的图片,并将其保存到我的数据库中。如果我通过管理面板执行此操作,则此方法有效,但我不知道如何使用 html 表单执行此操作。感谢所有提供帮助的人。我的代码在下面。
图片上传(这是表单中允许用户上传图片的部分):
<label class="label-input100" for="image">Image*</label>
<div class="">
<input id="image" class="input100" type="file" name="image" required>
<span class="focus-input100"></span>
</div>
捐赠视图(我从表单的其他部分获取了大量数据,并将其保存到模型中。我还没有添加任何代码来保存图像,我不知道该怎么做
def donate(request):
if request.method == "POST":
title = request.POST['donationtitle']
phonenumber = request.POST['phonenumber']
category = request.POST['category']
quantity = request.POST['quantity']
location = request.POST['location']
description = request.POST['description']
date = datetime.datetime.now().date()
ins = Donation(title = title, phonenumber = phonenumber, category = category, quantity = quantity, location = location, description = description, user=request.user, date = date )
ins.save()
# New part. Update donor's stats.
UserDetail.objects.filter(user=request.user).update(donations=F('donations') + 1)
UserDetail.objects.filter(user=request.user).update(points=F('points') + (quantity * 2))
return HttpResponseRedirect( '/thankyou/', )
return render(request,'donate.html')
捐赠模式:(我这里有图片字段,当我通过管理面板上传时它可以工作)
class Donation(models.Model):
title = models.CharField(max_length=30)
phonenumber = models.CharField(max_length=12)
category = models.CharField(max_length=20)
quantity = models.IntegerField(blank=True, null=True,)
location = models.CharField(max_length=50, blank=True, null=True,)
image = models.ImageField(null = True, blank = True, upload_to = 'images/')
description = models.TextField()
date = models.CharField(blank=True, null=True, max_length=999)
user = models.ForeignKey(
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
blank=True,
null=True,
)
@property
def imageURL(self):
try:
url = self.image.url
except:
url = 'images/gooddeedplaceholderimage.png'
return url
答案 0 :(得分:0)
如果你添加一行应该就可以了
ins.image=request.FILES['image']
在 ins.save() 行之前