2014-01-13 38 views
-2

我有一個表格應該在Django中創建一個新的'Quote'記錄。 'Quote'需要一個外鍵的BookID。如何訪問Django中的發佈請求中發送的數據?

這是我的形式

<form method="POST" action="{% url 'quotes:createQuote' %}"> 
    {% csrf_token %} 
    <section> 
     <label for="q_text">Quote Text</label> 
     <input type="text" name="text" id="q_text" placeholder="Enter a Quote" style="padding-left:3px"> <br> 

     <label for="q_book">Book ID</label> 
     <input type="text" name="bookID" id="q_book" placeholder="Enter Book ID" style="padding-left:3px"> <br> 

     <label for="q_disp">Display Quote Now?</label> 
     <input type="radio" name="display" id="q_disp" value="True"> True 
     <input type="radio" name="display" value ="False">False <br> 
     <button value="submit">Submit</button> 
    </section> 
</form> 

這是它在該請求的參數目標

def createQuote(request): 
    #b = get_object_or_404(Book, pk=request.bookID) 
    return HttpResponseRedirect(reverse('quotes:index')) 

某處的方法,我認爲有某種領域包含BOOKID用戶將通過表格。我如何獲得這些信息?

積分爲任何人誰可以告訴我一些方法,我可以想像數據好像我可能會在Javascript

+1

這是很好地覆蓋在教程和請求對象的文檔中擴展。 –

+0

你說得對,有一個這樣的例子。之前我沒有注意到。 – lorless

回答

1
if request.method == "POST": 
    book_id = request.POST['book_id'] 

console.log(some.collection)假設你確定它就是在那裏。否則,您需要驗證/提供默認值,就像您使用普通Python字典一樣。

至於可視化的數據,你的意思是打印到控制檯?在這種情況下,如果您正在運行django runserver,則只需執行print some_data即可。如果你想讓它格式化的更好一點,你可以用漂亮的印刷:

import pprint 
pp = pprint.PrettyPrinter() 
pp.pprint(some_data) 
+0

我正在使用django runserver。我想我已經誤解了一些東西。我是否可以在控制POST的文件內寫入打印內容,例如我的quotes/views.py,還是必須使用manage.py外殼?我從來沒有見過我的任何打印作品,但這可能是由於清除控制檯的重定向。 – lorless

+0

使用標準的runserver,'print'語句應該直接進入控制檯。無論是在請求垃圾郵件中迷路還是您定製了我不知道的內容。說實話,我傾向於不使用print語句,並且使用'assert False,some_data'給我一個django錯誤屏幕,顯示我想要顯示的變量,或者使用[pdb](http://docs.python .ORG/2 /庫/ pdb.html)。 – ptr

相關問題