确定。不过,我已经完全改变了这个问题,感谢您对如何以django形式创建文本区域的回复。
我的问题定义是:我需要显示一个页面,其中有一个模型中随机选择的5个问题。在每个模型之间插入一个文本区域,供该人写答案并提交。所有答案将以一种可以在将来根据问题引用的方式存储。
我可以创建一个表单文本框但是如何显示问题? Modelforms?
答案 0 :(得分:0)
您经常需要重新启动Django应用才能使代码更改生效
有几种方法可以显示CharField的Textarea小部件,没有它就像你想要的那样。
来自Django文档:
# override individual field
class AuthorForm(ModelForm):
class Meta:
model = Author
fields = ('name', 'title', 'birth_date')
widgets = {
'name': Textarea(attrs={'cols': 80, 'rows': 20}),
}
# in admin site, override all fields of a certain type
class MyModelAdmin(admin.ModelAdmin):
formfield_overrides = {
models.CharField: {'widget': forms.Textarea},
}
您还可以创建自定义字段,对CharField进行子类化并将Textarea指定为默认窗口小部件,然后在模型中使用它。
可能最好的方法(仅适用于ModelForm)是这个答案中的一个:
How do you change the default widget for all Django date fields in a ModelForm?
编写一个formfield_callback函数并将其附加到ModelForm类。
答案 1 :(得分:0)
好的,回答你的新问题......
你将有一个答案模型,外键回到问题
所以你的答案textareas可能是针对每个问题的内联形式: https://docs.djangoproject.com/en/1.3/topics/forms/modelforms/#inline-formsets