当我试图从管理面板添加图像时一切正常,但当我试图从站点添加图像时,我出现了以下错误:image of error。当我试图发布没有图像的细节时,我也有同样的问题。在这之前没有
在视图.py公司名称:
def new_detail(request):
if request.user.is_authenticated:
if request.user.is_superuser:
if request.method == 'POST':
car = request.POST['car']
author = request.user
detail = request.POST['detail']
price = request.POST['price']
description = request.POST['description']
image = request.FILES['images']
detail = Detail(car = car, author = author, detail = detail, price = price, description = description, images = image)
detail.save()
return redirect('/new_detail/')
else:
return redirect('/login/')
return render(request, 'shop/new_detail.html')
新的_详细信息.html公司名称:
^{pr2}$在 模型.py公司名称:
from django.db import models
class Detail(models.Model):
author = models.ForeignKey(
'auth.User',
on_delete=models.CASCADE,)
car = models.CharField(max_length=100)
detail = models.TextField()
description = models.TextField()
price = models.CharField(max_length=30)
images = models.ImageField(upload_to='details', null = True, blank = True)
def __unicode__(self):
return self.detail
def __str__(self):
return self.detail
第一个问题是模板中的表单标记中缺少
enctype="multipart/form-data"
。有关详细信息,请参见the docs on file uploads。在其次,当表单中缺少数据时,视图不处理这种情况。您应该检查
if 'detail' in request.POST
或使用request.POST.get('detail')
,而不是执行request.POST['detail']
。在然而,单独检查每个字段将非常耗时。您应该看看Django forms和{a3},它们可以为您处理很多这样的问题。在
^{pr2}$那么你的观点会是
^{3}$您也可以使用该表单简化模板:
如果需要在模板中进行更多控制,请参阅rendering fields manually上的文档。在
相关问题 更多 >
编程相关推荐