这对我来说真的很困惑,每当我执行视图时,我都会在x = form处得到错误。File_name表单没有File_name属性。但是,当我注释掉x =格式时。File_name HTML{{表单。File_name}}不返回错误,并将文件浏览器输出到页面。怎么形成的。File_name在views.py中执行时返回错误,但不在upload.html中执行?
upload.html
{{form.file_name}}
views.py
def upload(request):
form = CsvForm(request.POST or None, request.FILES or None)
x = form.file_name
return render(request, 'upload/upload.html', {'form' : form})
forms.py
class CsvForm(forms.ModelForm):
class Meta:
model = Csv
fields = ('file_name', 'public')
models.py
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class Csv(models.Model):
file_name = models.FileField(upload_to='csvs', max_length = 100)
public = models.BooleanField(default = False)
user = models.ForeignKey(User, on_delete = models.CASCADE, null = True)
def __str__(self):
return "File id: {}".format(self.id)
这是因为在后台表单使用__getitem__
保存绑定字段。
所以要正确访问绑定字段:
form["file_name"]
如果你想访问这个字段:
form.fields["file_name"]