我是django的新手,现在正在练习。我正在创建图像上传系统,但是即使可以通过admin发布和保存数据,也无法上传图像uisng表单。这是我的代码。
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代码有问题,但是我不明白如何解决此问题。请帮忙。
答案 0 :(得分:2)
初始化时,您不是https://www.codeproject.com/Tips/1009004/WCF-RESTful-on-Windows-Service-Host。如下进行传递:
form = ItemForm(request.POST, request.FILES)