如何以特定的 django 形式执行此操作?
Posted
技术标签:
【中文标题】如何以特定的 django 形式执行此操作?【英文标题】:How to do this in a particular django form? 【发布时间】:2011-12-25 12:08:00 【问题描述】:好的。不过,我已经完全改变了这个问题,感谢您对如何以 django 形式创建文本区域的回复。
我的问题定义是这样的:我需要显示一个页面,其中包含从模型中随机选择的 5 个问题。在每个模型之间插入一个文本区域,供人们编写答案并提交。所有答案都将以一种方式存储,以便将来根据问题进行引用。
我可以创建一组文本框,但如何显示问题?模型形式?
【问题讨论】:
好吧,既然您已经使用过Textarea
(否定我的回答),我认为您必须向我们展示您想要实现的目标的示例。
我可以使用表单集。但是,当我遍历表单集时,我如何推入特定模型的值?
我不知道你在问什么
我已经编辑了问题
【参考方案1】:
您通常需要重新启动 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 类。
【讨论】:
【参考方案2】:好的,回答你的新问题...
你将有一个 Answer 模型,外键返回一个 Question
因此,您的答案 textareas 可能是针对每个问题的内联表单集: https://docs.djangoproject.com/en/1.3/topics/forms/modelforms/#inline-formsets
【讨论】:
以上是关于如何以特定的 django 形式执行此操作?的主要内容,如果未能解决你的问题,请参考以下文章