2013-03-26 6 views
0

Я пытаюсь добавить страницу загрузки файла на моем сайте. Всякий раз, когда я отправляю форму, она говорит: «Это поле необходимо» над селектором файлов, как будто он не передает его. Вот моя форма, модель и представление.Простая страница загрузки файлов не работает

forms.py

from django import forms 
from django.http import HttpResponseRedirect 
from django.shortcuts import render_to_response 

class UploadFileForm(forms.Form): 

    MURRMACMOD = "MMM" 
    CUBE67 = "C67" 
    CUBE20 = "C20" 
    VDINCONN = "VDC" 
    IMPACT20 = "I20" 
    IMPACT67 = "I67" 
    CAT_CHOICES = (
     (MURRMACMOD, 'Murrelektronik Mac Module'), 
     (CUBE67, 'Cube67/Cube67'), 
     (CUBE20, 'Cube20'), 
     (VDINCONN, 'Valve DIN Connectors'), 
     (IMPACT20, 'Impact 20'), 
     (IMPACT67, 'Impact 67') 
    ) 

    article = forms.CharField(max_length=100) 
    title = forms.CharField(max_length=100) 
    file = forms.FileField() 
    cat = forms.ChoiceField(choices=CAT_CHOICES) 

models.py

from django.db import models 

class File(models.Model): 

    article = models.CharField(max_length=100) 
    title = models.CharField(max_length=100) 
    file = models.FileField() 
    cat = models.CharField() 

views.py

from django.http import HttpResponseRedirect 
from django.shortcuts import render_to_response 
from django.template import RequestContext 

from files.forms import UploadFileForm 

def upload_file(request): 
    if request.method == 'POST': 
     form = UploadFileForm(request.POST, request.FILES) 
     if form.is_valid(): 
      form.save() 
      return HttpResponseRedirect('/success/url/') 
    else: 
     form = UploadFileForm() 

    ctxt_dict = { 
     'form': form, 
    } 
    context = RequestContext(request, ctxt_dict) 
    return render_to_response('upload.html', context_instance=context) 

Я хотел бы некоторую помощь, ребята, спасибо.

EDIT: Вот шаблон.

{% if user.is_staff %} 
<form action="." method="post">{% csrf_token %} 
{{ form.as_p }} 
<input type="submit" value="Submit" /> 
{% else %} 
{% endif %} 
</form> 
+0

Можете ли вы также добавить свой шаблон (по крайней мере, часть формы и все потенциально связанные с формой код javascipt)? Спасибо :) – furins

+0

@furins Я не думал, что это важно, но я добавил его. –

+0

Теперь, когда я вижу это, я согласен, это неважно :) спасибо - PS, вы должны закрыть тег формы внутри инструкции if..else..endif или у вас будет тег с тегом-сиротой – furins

ответ

Смежные вопросы