django;无法上传图片和表单数据无效

时间:2018-06-24 03:34:15

标签: python django

我是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代码有问题,但是我不明白如何解决此问题。请帮忙。

1 个答案:

答案 0 :(得分:2)

初始化时,您不是https://www.codeproject.com/Tips/1009004/WCF-RESTful-on-Windows-Service-Host。如下进行传递:

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