2017-01-06 53 views
0

我創建一個聊天應用程序,並有2場,收件人的姓名和身體, 我想疏通全身是沒有形式出現後清零接收者的姓名提交comment場,我怎麼能做到這一點?如何在提交後只清除一個特定的表單域?

views.py

if request.method == 'POST': 
    form = userCommentForm(request.POST, request.FILES) 
    if form.is_valid(): 
     form.save(client=request.user) 
     > clear comment field. 

forms.py( 「工人」 字段是接收者的姓名。)

class userCommentForm(forms.Form): 
    worker = CommaSeparatedUserField(label=_(u"worker"), widget=forms.TextInput(attrs={'readonly': 'readonly'})) 
    comment = forms.CharField(label=_(u"comment"), widget=forms.Textarea()) 

    def save(self, client): 
     workers = self.cleaned_data['worker'] 
     comment = self.cleaned_data['comment'] 
     message_list = [] 
     for worker in workers: 
      msg = userComment(client=client, worker=worker, comment=comment,) 

      if None is not None: 
       msg.parent_msg = None 
       None.save() 
      msg.save() 
      message_list.append(msg) 

     return message_list 
     form.save(client=request.user) 

有什麼建議?

+0

你是什麼意思'清晰的身體領域? –

+0

一旦形式submited,'comment'領域應清除 – Lindow

回答

2

您在這裏有一些誤解。提交表單並在web應用程序處理後,你不應該有任何的當前請求繼續了,但你應該送GET請求到另一個網頁。因此,提交後無法將表單字段設置爲空。

我的建議是,當你的表單被提交時,你重定向到同一頁面,但是用GET參數存儲提交的名稱,然後在視圖的開始處以名稱作爲初始參數提供表單:

def view_method(request): 
    default_receiver = request.GET.get('receiver', None) 
    form = userCommentForm(request.POST or None, 
          request.FILES or None, 
          initial={'worker': default_receiver}) 
    if form.is_valid(): 
     form.save(client=request.user) 
     current_receiver = form.cleaned_data['worker'] 
     response = redirect('current-page-url-name') 
     response['Location'] += '?receiver=%s' % current_receiver 
     return response 
+0

嗯,這就是我想太多,我想檢查,如果有可能,因爲後來我想補充阿賈克斯,所以形式不每次重定向和'comment'字段得到重置。 – Lindow

+1

然後發送數據使用ajax,在它返回時使用javascript來清理註釋。 –