我遍歷表單的字段和某些字段,我想要稍微不同的佈局,需要更改HTML。從模板中獲取Django表單部件的類型
要做到這一點準確,我只需要知道小部件類型。它的類名或類似的東西。在標準的Python中,這很簡單! field.field.widget.__class__.__name__
不幸的是,您不允許訪問模板中的下劃線變量。 太棒了!
您可以測試field.field.widget.input_type
但文/密碼<input ../>
類型這隻作品。那我需要更多的解決方案。
對我來說,無論它看起來有多困難,最好在模板級別做到這一點。我已經將處理HTML字段的代碼外包給了包含在字段循環中的單獨模板。這意味着它在ModelForm
s和標準Form
s之間是一致的(如果我編寫了中介Form類,那麼這是不正確的)。
如果您能看到一種不需要我編輯20多種表格的通用方法,請讓我知道!
相關錯誤報告或功能請求:https://code.djangoproject.com/ticket/13009 – Flimm