Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我会得到';此字段为必填项';Django模型出错,我的代码中有错误吗?_Django - Fatal编程技术网

为什么我会得到';此字段为必填项';Django模型出错,我的代码中有错误吗?

为什么我会得到';此字段为必填项';Django模型出错,我的代码中有错误吗?,django,Django,所以我尝试制作一个用户表单,用户可以使用模型中的文件字段上传图片。我选择了一张图片,它仍然说这个字段是必需的(提交表单后),并卸载图片 models.py: # These are our database files for the Incubator Portal class Incubators(models.Model): incubator_name = models.CharField(max_length=30) owner = models.CharField(m

所以我尝试制作一个用户表单,用户可以使用模型中的文件字段上传图片。我选择了一张图片,它仍然说这个字段是必需的(提交表单后),并卸载图片

models.py:

# These are our database files for the Incubator Portal
class Incubators(models.Model):
    incubator_name = models.CharField(max_length=30)
    owner = models.CharField(max_length=30)
    city_location = models.CharField(max_length=30)
    description = models.TextField(max_length=100)
    logo = models.FileField()
    verify = models.BooleanField(default = False)

    def get_absolute_url(self):
        return reverse('main:details', kwargs={'pk': self.pk})
孵化器-form.html

<form method="post" novalidate>
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit">Submit</button>
</form>
并将以下内容添加到settings.py

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

我甚至在项目目录中创建了媒体文件夹。我有另一个类具有相同的FileField,它工作得很好。问题只存在于此类中。

您的表单标记缺少
enctype
属性,这意味着文件上载将永远无法到达Django。从:

请注意,
request.FILES
仅在请求方法为POST且发布请求的
具有属性
enctype=“multipart/form data”
时才会包含数据。否则,request.FILES将为空

您需要更新表单标记,如下所示:

<form method="post" novalidate enctype="multipart/form-data">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">Submit</button>
</form>

{%csrf_令牌%}
{{form.as_p}}
提交

你能发布表单类吗?如果你能发布错误可能会更好。我已经发布了表单类。至于错误,我只是在点击提交后点击提交时收到这个错误消息“未选择任何字段”(它根本不拍摄图像)
<form method="post" novalidate enctype="multipart/form-data">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">Submit</button>
</form>