如何以特定的 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 形式执行此操作?的主要内容,如果未能解决你的问题,请参考以下文章

您可以将参数添加到 Django 自定义管理操作吗?

如何在 Django 模板中执行此操作

Django 表单字段验证 - 如何判断操作是插入还是更新?

如何使用 Azure Powershell 执行此操作?

Django 消息,如何隐藏特定消息

我的目标是 resourcePool 的所有资源在特定时间执行操作。如何创建此迭代?