我正在尝试按照教程为我的Django应用程序创建上传表单。我正在尝试这样做,以便我可以上传CSV文件,然后处理它。
我在/ upload /'str'对象中遇到TypeError是不可调用的
upload.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Minimal Django File Upload Example</title>
</head>
<body>
<!-- List of uploaded uploads -->
{% if uploads %}
<ul>
{% for upload in uploads %}
<li><a href="{{ upload.csvfile.url }}">{{ upload.csvfile.name }}</a></li>
{% endfor %}
</ul>
{% else %}
<p>No uploads.</p>
{% endif %}
<!-- Upload form. Note enctype attribute! -->
<form action="{% url 'upload' %}" method="post" enctype="multipart/form-data">
{% csrf_token %}
<p>{{ form.non_field_errors }}</p>
<p>{{ form.csvfile.label_tag }} {{ form.csvfile.help_text }}</p>
<p>
{{ form.csvfile.errors }}
{{ form.csvfile }}
</p>
<p><input type="submit" value="Upload" /></p>
</form>
</body>
</html>
views.py
def upload(request):
# Handle file upload
if request.method == 'POST':
form = UploadForm(request.POST, request.FILES)
if form.is_valid():
newdoc = CSV(docfile=request.FILES['csvfile'])
newdoc.save()
else:
form = UploadForm() # A empty, unbound form
models.py
class CSV(models.Model):
file = models.FileField(upload_to='csv/')
forms.py
class UploadForm(forms.Form):
csvfile = forms.FileField(
label='Select a CSV file',
)
urls.py
url(r'^admin/', include(admin.site.urls)),
url(r'^upload/$', 'upload', name='upload'),
知道为什么我会收到这个错误吗?有没有办法专门从调试页面找出它的含义?任何帮助表示赞赏
回溯:
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/upload/
Django Version: 1.7.6
Python Version: 3.4.2
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'import_export',
'fanduel')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware')
Traceback:
File "C:\Users\Wilson\AppData\Roaming\Python\Python34\site-packages\django\core\handlers\base.py" in get_response
111. response = wrapped_callback(request, *callback_args, **callback_kwargs)
Exception Type: TypeError at /upload/
Exception Value: 'str' object is not callable