gpt4 book ai didi

python - Django ;无法上传图片且表单数据无效

转载 作者:行者123 更新时间:2023-11-30 22:12:45 36 4
gpt4 key购买 nike

我是 django 的新手,现在正在练习它。我正在创建图像上传系统,但即使我可以通过管理员发布和保存数据,我也无法上传图像。这是我的代码。

models.py

class Item(models.Model):
title = models.CharField(max_length=50)
image = models.ImageField(upload_to='item', max_length=255)
price = models.DecimalField(max_digits=4, decimal_places=1)
description = models.TextField()
created = models.DateTimeField(auto_now_add=True)

user = models.ForeignKey(settings.AUTH_USER_MODEL , on_delete=models.CASCADE)

forms.py

class ItemForm(forms.ModelForm):
class Meta:
model = Item
fields = ['title', 'image', 'price', 'description']
widgets = {'text': forms.Textarea(attrs={'cols': 80})}

views.py

def sell_item(request):

if request.method != 'POST':
form = ItemForm()
else:
form = ItemForm(data=request.POST)

if not form.is_valid():
raise ValueError('invalid form')

new_item = form.save(commit=False)
new_item.user = request.user
new_item.save()

return HttpResponseRedirect('mainapp:index')
return render(request, 'mainapp/sell.html', {'form': form})

这是该部分的 html 代码。

    <form method="POST" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<br />
<button type="submit" class="btn btn-success">submit</button>
</form>

当我填写数据并提交它们时,它会引发 ValueError。表单看起来不错,所以我猜想如何保存图像数据或 html 代码存在问题,但我不明白如何解决这个问题。请帮忙。

最佳答案

你不是 passing request.FILES to your form当你初始化它的时候。传递如下:

form = ItemForm(request.POST, request.FILES)

关于python - Django ;无法上传图片且表单数据无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51006743/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com