码迷,mamicode.com
首页 > 其他好文 > 详细

FormView用法

时间:2015-01-19 14:21:56      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:

功能描述:

学生可以对相应学校机构进行投诉建议.

技术分享

form表单

class SuggestForm(forms.Form):
    TYPE_CHOICES = (
        (0, u‘学校‘),
        (1, u‘学院‘),
        (2, u‘校院‘),
    )
    content = forms.CharField(label=u"内容", required=True, widget=forms.Textarea(attrs={‘cols‘: 33}),
                              error_messages={‘required‘: u‘请留下你的建议哦‘})
    type = forms.ChoiceField(label=u"类型", required=True, widget=forms.RadioSelect, choices=TYPE_CHOICES,
                             error_messages={‘required‘: u‘请做出你的选择哦‘})
    error_messages = {
        ‘content‘: {
            ‘required‘: "内容不能为空哦"
        },
    }

    def save(self, user, commit=True):
        cleaned_data = super(SuggestForm, self).clean()
        student = Student.objects.get(user=user)
        complain = Complain(student=student, content=cleaned_data.get("content"))
        complain.save()

 前台显示

<form action="" method="post">
                    {% csrf_token %}
                    {{ form.as_table }}
                    <input type="submit" value="提交" class="ahref"/>
</form>

 view定义

from django.views.generic import FormView
class SuggestView(FormView): template_name = "student/suggest.html" form_class = SuggestForm def form_valid(self, form): form.save(self.request.user) return render(self.request, self.template_name, {"success": u"提交建议成功"})

 

    #===如果需要变更样式, 或者变更显示中文名称.更改 label    
    def __init__(self, *args, **kwargs):
        super(TestModelForm, self).__init__(*args, **kwargs)
        #====改变样式,也可以赋值 class=???,在外面html页面上先定义好,个人不推荐直接在代码里写,只是为了演示。
        self.fields[‘yourname‘].widget.attrs.update({‘style‘ : ‘border:1px dashed #ccc;‘})
        self.fields[‘email‘].label=‘伊妹儿‘  

 

FormView用法

标签:

原文地址:http://www.cnblogs.com/tuifeideyouran/p/4233590.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!