2012-06-27 44 views
0

我們需要在python中呈現表單並捕獲html輸出。到目前爲止,我們求助於骯髒的黑客:通過python中的django-crispy-forms呈現表格

 
def crispy_page(form):     
    mini_template = """       
     {% load crispy_forms_tags %}     
     {% crispy form %}        
    """           
    from django.template import Template, Context 
    t = Template(mini_template)     
    c = Context({"form":form})     
    return t.render(c) 

我們希望只能夠直接從香脆的形式以某種方式獲取渲染輸出,而不必通過Django的模板系統跳。有什麼想法嗎?

+0

你有幫助?你有佈局嗎?什麼是用例?爲什麼你需要Python中的HTML,如果我可以問,可能有更好的方法來定製輸出。 – maraujop

+0

我確實有一個幫手和一個佈局。用例是雙重的。 1)我想測試窗體html輸出。 2)我想有一個窗體包含一個子窗體。所以,在python中,我想將子窗體呈現爲html,然後將該html注入到子窗體字段所在的容器窗體中。 – chrispitzer

回答

2

These are the lines{% crispy %}標記的節點中,用於呈現具有助手+佈局的表單。我可以將這些重構出來,以便它們很容易從外部調用。該應用程序不被認爲是服務器端使用,這就是爲什麼它是如此僵化。

這是我的理解,你有一個形式A的字段,然後字段的另一個形式B,然後更多的形式A字段,是嗎?

編輯2012年7月30日

版本1.2.0將拿出一個render_crispy_form功能幫您解決問題: https://github.com/maraujop/django-crispy-forms/issues/64#issuecomment-7354910