如何以特定的django形式执行此操作?

时间:2011-11-09 17:06:50

标签: django

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

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

我可以创建一个表单文本框但是如何显示问题? Modelforms?

2 个答案:

答案 0 :(得分:0)

  1. 您经常需要重新启动Django应用才能使代码更改生效

  2. 有几种方法可以显示CharField的Textarea小部件,没有它就像你想要的那样。

  3. 来自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