我想更改外部应用程序表单字段,以便在我的应用程序的特定模板中使用。
我想为字段提供属性值,如下所示。
body = forms.CharField(widget=forms.Textarea(attrs={'class':'textarea', 'rows':'', 'cols':"", 'onclick':"this.style.height='250px';"}))
title = forms.CharField(widget=forms.TextInput(attrs={'class':'text'}))
tags = forms.CharField(widget=forms.TextInput(attrs={'class':'text'}))
我知道,我可以在外部应用程序forms.py中分配这些属性;但我需要为特定模板分配这些属性,以免影响应用程序的其他部分。
答案 0 :(得分:2)
如果您只想在单个模板上使用这些属性,则有两种选择:
在该模板中手动布局表单。缺点是它不是很干,如果可重用的应用程序的形式在将来的升级中发生变化,你将有更多的工作来更新该模板。
在呈现该模板的视图中创建表单实例后,将这些attrs修补到Field对象上。如果视图也是可重用应用程序的一部分,如果您必须自己重新实现该视图,这可能会导致一些DRY违规。