2014-11-03 78 views
0

我正在做django-contrib評論的自定義評論應用程序到我的Django應用程序。終於,我獲得了具有圖像字段的評論應用程序,並且它顯示在當然的模板中。但這是事情,當我試圖發表評論與圖片,它不保存圖像文件,並說空(該字段是必填項)。任何人都可以幫我弄清楚。這裏是一些代碼片段。django自定義評論的圖像字段不工作

models.py

class CommentWithPic(Comment): 
    image = models.ImageField(upload_to="comments/%Y/%m/%d/", null=True, blank=True) 

forms.py

class CommentFormWithPic(CommentForm): 
    image = forms.ImageField() 

    def get_comment_model(self): 
     return CommentWithPic 

    def get_comment_create_data(self): 
     data = super(CommentFormWithPic, self).get_comment_create_data() 
     data['image'] = self.cleaned_data['image'] 
     return data 

post_with_comment.html

{% render_comment_list for adi %} 
    {% get_comment_form for adi as form %} 
    <form action="{% comment_form_target %}" method="post"> 
     {% csrf_token %} 
     {% for field in form %} 
      {% if field.is_hidden %} 
       {{ field }} 
      {% else %} 
       {% if field.errors %}{{ field.errors }}{% endif %} 
       {{ field.label }} 
       {{ field }} 
      {% endif %} 
     {% endfor %} 
     <input type="hidden" value="{% url 'ad' adi.id %}"/> 
     <input type="submit" value="comment"/> 
    </form> 
+0

'CommentForm'是一個'ModelForm'?你有沒有嘗試過'image = forms.ImageField(required = False)'? – 2014-11-03 17:57:26

+0

@ TimmyO'Mahony,是的,我試過required = False,如果是這樣,但它沒有圖像文件。而且,它是CommentForm。正如它在django文檔中所說 – Zorig 2014-11-03 18:03:00

+0

那麼你想要做什麼?你說如果你不包含'required = False',那麼它會發布評論頁面並且抱怨圖片字段是必需的(這是正確的功能),但是如果你包含'required = False',那麼它會發表評論沒有圖像(這也是正確的功能) – 2014-11-03 18:20:44

回答

0

您需要聲明的形式如下內容(注意enctype屬性)時處理ImageField

<form enctype="multipart/form-data" action="{% comment_form_target %}" method="post">\ 

bind uploads to a form

與具有的FileField和ImageField的字段形式處理是一個小比正常形式更加複雜。 首先,爲了上傳文件,你需要確保你的元素正確定義ENCTYPE爲「多/表單數據」

您還需要使圖像可選形式:

class CommentFormWithPic(CommentForm): 
    image = forms.ImageField(required=False) 

    ... 
+0

好吧,我剛剛添加了'enctype =「multipart/form-data」'做了'requied = False'但是還是一樣,它沒有發佈圖片 – Zorig 2014-11-03 18:42:24

+0

實際上所有的文本字段都是發佈的,除了圖片字段。誰能幫我這個 – Zorig 2014-11-05 11:05:12