尝试创建上传表单时,django中的TypeError

时间:2015-03-16 19:14:16

标签: python django django-forms

我正在尝试按照教程为我的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

0 个答案:

没有答案