0

Picture に基づく ModelForm があります。

class Picture(models.Model):
    name = models.CharField(max_length=100)
    pub_date = models.DateTimeField('date published')
    tags = models.ManyToManyField('Tag', blank=True)
    content = models.ImageField(upload_to='instaton')

    def __unicode__(self):
        return self.name

class PictureForm(forms.ModelForm):
    class Meta:
        model = Picture
        exclude = ('pub_date','tags')

もちろん、それがモデルと ModelForm です。

def submit(request):
    if request.method == 'POST': # if the form has been submitted
        form = PictureForm(request.POST)
        if form.is_valid():
            return HttpResponseRedirect('/django/instaton')
    else:
        form = PictureForm() # blank form
    return render_to_response('instaton/submit.html', {'form': form}, context_instance=RequestContext(request))

それがビューです(urls.pyによって正しくリンクされています)

現在、フォームの送信時に何もしません。私はそれが有効であることを確認するだけです。そうであれば、アプリのメイン ページに転送します。

<form action="/django/instaton/submit/" method="post"> {% csrf_token %}
{{ form.as_p }}
<input type="submit" value"Submit" />
</form>

そして、私のテンプレートがあります (正しい場所にあります)。

実際にフォームに入力して検証しようとすると、正しく入力したとしても、フォームに戻り、名前とコンテンツの間に「このフィールドは必須です」と表示されます。コンテンツを指していると思いますが、よくわかりません。

私の問題は何ですか?これを行うより良い方法はありますか?

4

1 に答える 1

2

フォームにファイルを含める必要があります

form = PictureForm(request.POST, request.FILES)
于 2012-12-05T01:08:45.650 に答える