我的表单一直显示 "This(image) field is required!" Django 3.0

My form keep saying "This(image) field is required!" Django 3.0

我在 youtube 上用 net-ninja 创建了一个项目,现在我正在我自己的项目中添加 "uploading media" 功能,但它没有用,尽管每件事都已设置好,请告诉我我哪里出错了。 我的表单一直要求我上传图像文件,即使我已经完成了,每次我发送 post 请求时,它都会再次呈现页面,图像字段中没有任何值。这里有什么问题,为什么它不接受图像输入?不要评论将 required 设置为 false 这不是解决方案我不知道为什么有些人在 Whosebug 上对其他人说这个,当他们问我同样的问题时。

My model class looks like this
class Products(models.Model):
    name            = models.CharField(max_length=500, unique=True, )
    price           = models.IntegerField()
    stock           = models.IntegerField()
    date_added      = models.DateTimeField(verbose_name="date added", auto_now_add=True, )
    thumb           = models.ImageField(default='default.png', blank=True)
    profile         = models.ForeignKey(Profile, on_delete=models.CASCADE, default=None,)

    def __str__(self):
        return self.name

    class Meta():
        verbose_name_plural = "Products"


My form looks like this
class AddProduct(forms.ModelForm):
    name = forms.CharField(widget=forms.TextInput(attrs={'placeholder':'Product Name',  'required':'True', 'class': 'form-control'}))
    price = forms.IntegerField(widget=forms.NumberInput(attrs={'placeholder':'Set Price',  'required':'True', 'class': 'form-control'}))
    stock = forms.IntegerField(widget=forms.NumberInput(attrs={'placeholder':'Number of items',  'required':'True', 'class': 'form-control'}))
    thumb = forms.ImageField(required=False, widget=forms.ClearableFileInput(attrs={'placeholder':'Upload Picture', 'enctype' : 'multipart/form-data'}))

    class Meta():
        model = Products
        fields = ('name', 'price', 'stock','thumb', )


HTML looks like this
<form class="row contact_form" action="/shop/add_products" method="post">
                                {% csrf_token %}
                                {% for field in form %}
                                    <div class="col-md-12 form-group p_star">
                                        {{ field }}
                                        {{ field.errors }}
                                    </div>
                                {% endfor %}
                                <!-- {% for field in form %}
                                    {% for error in field.errors %}
                                        <div class="col-md-12 form-group p_star">
                                            {{ error }}
                                        </div>
                                    {% endfor %}
                                {% endfor %} -->
                                {% if form.non_field_errors %}
                                    <div class="col-md-12 form-group p_star">
                                        {{ form.non_field_errors }}
                                    </div>
                                {% endif %}
                                <div class="col-md-12 form-group">
                                    <button type="submit" value="submit" class="btn_3">
                                        Add Product
                                    </button>
                                </div>
                            </form>


My views file looks like this

@login_required(login_url='/shop/login')
def shop_add_products(request):
    if request.method == 'POST':
        form = AddProduct(request.POST, request.FILES)
        if form.is_valid():
            instance = form.save(commit=False)
            instance.profile = request.user
            instance.save()
            return redirect("/shop/products")
    else:
        form = AddProduct()

    return render(request, "pillow_site_html/add_product.html", { 'form':form })

哦,抱歉,我没听懂这里的问题,你明白了,因为实际上你没有在你的表单中发送图片,因为你必须将它添加到你的表单中,以便它可以接受文件处理

<form class="row contact_form" action="/shop/add_products" method="post" enctype="multipart/form-data">