2017-10-09 30 views
0

我使用我的模型之一(Post)爲我的博客網站創建了一個窗體。該表格適用於作者發表文章。在這種形式中,作者可以上傳圖像的圖像屬性。然而,當我嘗試上傳圖片併發布時,我收到了一個反饋,說「所需的字段」,我認爲表單不會識別正嘗試上載到數據庫的圖像。請幫助:(幫助)Django模型窗體不識別圖像文件

這是views.py表單視圖:

def formview(request): 
    form = PostForm(request.POST or None) 
    if form.is_valid(): 
     instance = form.save(commit=False) 
     instance.save() 
    return render(request, 'form.html', {'form':form}) 

這是forms.py:

from django import forms 
from .models import Post 

class PostForm(forms.ModelForm): 
    image = forms.FileField 
    class Meta: 
     model = Post 
     fields = ['category', 'title', 'body', 'image', 'author'] 

這從我的models.py:

class Post(models.Model): 
category = models.ForeignKey(Category) 
title = models.CharField(max_length=100) 
pub_date = models.DateTimeField(auto_now_add=True) 
body = models.TextField() 
image = models.FileField() 
author = models.ForeignKey(User, on_delete=models.CASCADE) 
likes = models.IntegerField(default=1) 

def __str__(self): 
    return self.title 

這是我的forms.html模板:

<form method="POST" action=""> 
{% csrf_token %} 

{{ form.as_p }} 

<button type="submit">Post</button> 

這是我的urls.py:

from django.conf.urls import url 
from . import views 

app_name = 'posts' 

urlpatterns = [ 
    url(r'^$', views.homeview, name='homeview'), 
    url(r'^(?P<pk>[0-9]+)$', views.postview, name='postview'), 
    url(r'^category/(?P<pk>[a-zA-Z0-9]+)/$', views.categoryview, 
name='categoryview'), 
    url(r'^author/(?P<pk>[a-zA-Z0-9]+)/$', views.authorview, name='authorview'), 
    url(r'^add_post/$', views.formview, name='formview'), 

] 

這些都是圖片可能有助於解釋什麼想說:

Filling the form and selecting the picture

Error message after trying to post

謝謝你

回答

0
def formview(request): 
    if request.method == 'POST': 
     form = PostForm(request.POST,request.FILES) 
     if form.is_valid(): 
      instance = form.save(commit=False) 
      instance.save() 
    else: 
     form = PostForm() 
    return render(request, 'form.html', {'form':form}) 

這個form = PostForm(request.POST,request.FILES),你需要將文件添加到PostForm

+0

非常感謝!..它的工作...所以如何對「無」?..因爲現在我明白了「必須填寫」遍我的表格甚至在填寫之前。但最初'沒有'處理,除非用戶未能填寫該屬性。請幫助我解決這個問題。謝謝 – Abdul

+0

我已經改變了我的答案,再次看到它 – Ykh