Django forms - object在尝试引用表单字段时没有属性错误



这对我来说真的很困惑,每当我执行视图时,我都会在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"]

最新更新