当我试图发布imag时出现多值dictkeyError

2024-03-28 11:05:56 发布

您现在位置:Python中文网/ 问答频道 /正文

当我试图从管理面板添加图像时一切正常,但当我试图从站点添加图像时,我出现了以下错误: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

Tags: 图像imageself名称returnmodelsrequestdef
1条回答
网友
1楼 · 发布于 2024-03-28 11:05:56

第一个问题是模板中的表单标记中缺少enctype="multipart/form-data"。有关详细信息,请参见the docs on file uploads。在

<form action="" method="POST" enctype="multipart/form-data">

其次,当表单中缺少数据时,视图不处理这种情况。您应该检查if 'detail' in request.POST或使用request.POST.get('detail'),而不是执行request.POST['detail']。在

然而,单独检查每个字段将非常耗时。您应该看看Django forms和{a3},它们可以为您处理很多这样的问题。在

^{pr2}$

那么你的观点会是

^{3}$

您也可以使用该表单简化模板:

<form action="" method="POST" enctype="multipart/form-data">
    {% csrf_token %}
    {{ form }}
</form>

如果需要在模板中进行更多控制,请参阅rendering fields manually上的文档。在

相关问题 更多 >