2011-04-06 85 views
1

我有一個動態生成的表單,但我無法做任何事情,因爲Django在每個POST表單中都需要一個csrf_token。產生如何將csrf_token添加到動態生成的表單中?

我的形式通過:

$("#results").append(
    '<form class="form-book-add" id="{0}" method="post" action="/books/add/">' 
    // Django requires a CSRF token here. How do I add it via Javascript? 
    + '<input type="hidden" id="book-asin" value="'+asin+'"/>' 
    + '<input type="hidden" id="book-title" value="'+details['title']+'"/>' 
    + '<input type="hidden" id="book-author" value="'+details['author']+'"/>' 
    + '<input type="hidden" id="book-cover" value="'+details['cover']+'"/>' 
    + '<input type="hidden" id="book-url" value="'+details['url']+'"/>' 
    + '<input type="hidden" id="book-isbn" value="'+details['isbn']+'"/>' 
    + '<input type="submit" id="btn-book-add" value="Add"/>' 
    + '</form></div>'.format(i) 
); 
+0

如果您的表單是動態生成的,那麼django模板引擎將不會解析它,因此您不需要CSRF標記。或者我錯過了什麼? – 2011-04-06 11:01:15

回答

3

你有2個選項,第一個排除CSRF驗證的觀點 - 最簡單的,不安全的。

秒,將inputcsrfmiddlewaretoken設置爲來自cookie csrftoken的值。

django docs有一個類似的很好的例子(從這個例子中你只需要提取cookie值的部分)。

相關問題