【问题标题】:How to do this in a particular django form?如何以特定的 django 形式执行此操作?
【发布时间】:2011-12-25 12:08:00
【问题描述】:

好的。不过,我已经完全改变了这个问题,感谢您对如何以 django 形式创建文本区域的回复。

我的问题定义是这样的:我需要显示一个页面,其中包含从模型中随机选择的 5 个问题。在每个模型之间插入一个文本区域,供人们编写答案并提交。所有答案都将以一种方式存储,以便将来根据问题进行引用。

我可以创建一组文本框,但如何显示问题?模型形式?

【问题讨论】:

  • 好吧,既然您已经使用过Textarea(否定我的回答),我认为您必须向我们展示您想要实现的目标的示例。
  • 我可以使用表单集。但是,当我遍历表单集时,我如何推入特定模型的值?
  • 我不知道你在问什么
  • 我已经编辑了问题

标签: django


【解决方案1】:
  1. 您通常需要重新启动 Django 应用程序才能使代码更改生效

  2. 有几种方法可以显示 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-10
      • 2021-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多