0

サイトに簡単なファイル アップロード ページを追加しようとしています。フォームを送信するたびに、ファイル セレクターの上に「このフィールドは必須です」と表示されます。これが私のフォーム、モデル、およびビューです。

フォーム.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()

ビュー.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)

私は何人かの助けが欲しいです、ありがとう。

編集:これがテンプレートです。

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

1 に答える 1

1

Django Template で、 filefield を持つフォームをレンダリングしようとしている場合。置換を渡す必要があります

フォーム メソッド="投稿" アクション="">

form method="POST" enctype="multipart/form-data">

フォームセットとリストのフォームを同時にループ+ FileFieldに必要なエラー:django

于 2013-03-27T00:15:16.923 に答える