【发布时间】:2019-06-11 02:33:55
【问题描述】:
我在使用 django 生成的表单视图时收到此字段是必需的错误。
我有一个扫描模型,看起来像:
class Scan(models.Model):
device = models.ForeignKey(Device, null=True, on_delete=models.SET_NULL)
created_at = models.DateTimeField('Created', auto_now=True)
data = models.FileField(upload_to='uploads/')
def __str__(self):
return str("{}-{}".format(self.device, self.created_at))
我定义了一个 CreateView:
class ScanCreate(LoginRequiredMixin, CreateView):
model = Scan
fields = '__all__'
我的url路由是
urlpatterns = [
...
path('scan/create/', views.ScanCreate.as_view(), name='scan-create'),
...
]
最后是 scan_form.html 模板
{% block content %}
<form action="" method="post">
{% csrf_token %}
<table>
{{ form.as_table }}
</table>
<input type="submit" value="Submit">
</form>
{% endblock %}
在选择要上传的文件并提交表单时,我收到“此字段为必填项”。错误并且请求失败:
【问题讨论】:
-
auto_now将字段设置为editable=Falseiirc。 -
感谢 Willem,我尝试传递
editable=True,但没有效果。删除auto_add确实会显示该字段,但没有我需要的默认值。我可以让该字段出现并包含默认值吗? -
我想你误会了。通过将其设置为
auto_now,您基本上可以指定这是不可编辑的字段。所以它确实不应该出现。 -
我现在明白了。似乎错误消息可能适用于
dataFileField,更新问题。
标签: django forms validation file-upload