如何在模型属性中定义窗口小部件

时间:2009-10-10 20:37:20

标签: python django django-forms

简单地说,我写道:

# forms.py
class NoteForm(ModelForm):
def __init__(self, *args, **kwargs): 
    super(NoteForm, self).__init__(*args, **kwargs)
    #add attributes to html-field-tag:
    self.fields['content'].widget.attrs['rows'] = 3
    self.fields['title'].widget.attrs['size'] = 20

class Meta:
    model = Note
    fields = ('title','content')

向HTML标记字段添加或修改某些属性。

但是在这个时候,我将不得不直接在models.py

中的Note模型中进行
#models.py
class Note(models.Model):
    title =   models.CharField(max_length=100)
    content = models.TextField(max_length=255)
    #how to define the fields.widget.attrs here ?????

仅供参考:为什么?因为它将作为

工作
NotesFormSet = inlineformset_factory(NoteBook, Note, extra=10)

添加/编辑笔记本时添加许多Notes

注意:这不是django admin

如果我没有给你足够的上下文,请注释plz,任何提示都是apreciated =')

1 个答案:

答案 0 :(得分:1)

不,您仍然在表单中执行此操作,但您只需将该表单作为参数传递给inlineformset_factory

NotesFormSet = inlineformset_factory(NoteBook, Note, extra=10, form=NoteForm)