2016-06-28 38 views
0

我想創建一個包含創建的東西,這些列表的形式模板somethings.If我有意見如何輸入模板中的兩種觀點

def list_of_something(request): 
    list1=something.objects.all() 
    return render(request , 'index.html' ,{'list1':list1}) 
def post_something(request): 
    form_class=SomethingForm 
    if request.method="POST": 
     form=form_class(request.POST) 
     if form.is_valid(): 
     ......... 
     ........ 
     ........ 
    return render(request, 'post_something.html', {'form': form,}) 

這是我完成。

  1. 我曾嘗試include{% include "post_something.html" %}到的index.html,它加載post_something.html但是當它到達{{form.as_p}}它不加載它?
  2. 我已經檢查出基於類的視圖,但我不知道如何使用它來完成上述操作。

UPDATE 多虧了答案below.What我所做的就是添加{% include "post_something.html" %}到index.html.and通過表單視圖返回render(request,'index.html,{'list1':list1,'form':SomethingForm()})的名稱。 此外,將你的表單動作屬性指向post_something視圖,它應該工作。

回答

0

post_something.html只是模板的名稱,您仍然需要傳遞表單。我假設你正在嘗試顯示list_of_something視圖,因此您需要將該表單包含在該視圖的上下文數據中。

return render(request , 'index.html',{'list1':list1, 'form': SomethingForm()}) 
+0

非常感謝。我會嘗試一下 – Bolaji

+0

隨着你的解決方案,它顯示在index.html的形式,但視圖post_something()中的邏輯不存在。表單只接受值並點擊提交,它已經走了.. – Bolaji

+1

@Bolaji你應該改變模板中的表單'action'屬性,以便它將表單數據提交給'post_something'視圖。 – Alasdair

0

假設當您使用{% include %}標籤post_something.html的內容將合併到index.html。現在您需要從視圖中傳遞合併模板中的所有變量。它應該是這樣的:

return render(request, 
       'index.html', 
       {'list1':list1, 'form': form}) 

您可以根據您的業務用例定義form

+0

非常感謝。我會試試 – Bolaji

+0

@sayse隨着你的解決方案,它顯示在index.html但視圖post_something()中的邏輯不在那裏。表單只接受值並點擊提交,它就不見了.. – Bolaji