DJANGO - 如何在外部应用程序表单中使用“自定义属性”而无需永久更改

时间:2009-09-19 12:17:26

标签: django django-templates

我想更改外部应用程序表单字段,以便在我的应用程序的特定模板中使用。

我想为字段提供属性值,如下所示。

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中分配这些属性;但我需要为特定模板分配这些属性,以免影响应用程序的其他部分。

1 个答案:

答案 0 :(得分:2)

如果您只想在单个模板上使用这些属性,则有两种选择:

  1. 在该模板中手动布局表单。缺点是它不是很干,如果可重用的应用程序的形式在将来的升级中发生变化,你将有更多的工作来更新该模板。

  2. 在呈现该模板的视图中创建表单实例后,将这些attrs修补到Field对象上。如果视图也是可重用应用程序的一部分,如果您必须自己重新实现该视图,这可能会导致一些DRY违规。