コード例 #1
0
ファイル: views.py プロジェクト: willpower-chen/python
class FM(forms.Form):
    # 字段本身只做验证
    user = fields.CharField(
        error_messages={'required': '用户名不能为空.'},
        # widget=widgets.Textarea(attrs={'class': 'c1'}),
        label="用户名",
    )
    pwd = fields.CharField(
        max_length=12,
        min_length=6,
        error_messages={
            'required': '密码不能为空.',
            'min_length': '密码长度不能小于6',
            "max_length": '密码长度不能大于12'
        },
        widget=widgets.PasswordInput(attrs={'class': 'c2'}),
        label="密码",
    )
    email = fields.EmailField(label="email",
                              error_messages={
                                  'required': '邮箱不能为空.',
                                  'invalid': "邮箱格式错误"
                              })

    f = fields.FileField()
    # p = fields.FilePathField(path='app01')
    # 单选框
    city1 = fields.ChoiceField(choices=[(0, '上海'), (1, '广州'), (2, '东莞')])
    # 复选框
    city2 = fields.MultipleChoiceField(choices=[(0, '上海'), (1, '广州'), (2,
                                                                       '东莞')])
コード例 #2
0
class FORM(forms.Form):
    user = fields.CharField(error_messages={'required': '用户名不能为空'}, )
    pwd = fields.CharField(
        max_length=12,
        min_length=6,
        error_messages={
            'required': '密码不能为空',
            'max_length': '密码长度不能大于12',
            'min_length': '密码长度不能小于6'
        },
        widget=widgets.PasswordInput(attrs={'class': 'pas'}))
    email = fields.EmailField(error_messages={
        'required': '邮箱不能为空',
        'invalid': '邮箱格式错误'
    })
    remark = fields.CharField(required=False,
                              label="备注",
                              initial="备注信息",
                              widget=widgets.Textarea(attrs={'class': 'user'}))
    f = fields.FileField()

    # p = fields.FilePathField(path='app01')

    city1 = fields.ChoiceField(choices=[(0, '上海'), (1, '广州'), (2, '东莞')])
    city2 = fields.MultipleChoiceField(choices=[(0, '上海'), (1, '广州'), (2,
                                                                       '东莞')])
コード例 #3
0
class ArticleForm(Form):
    def __init__(self, request, *args, **kwargs):
        super(ArticleForm, self).__init__(*args, **kwargs)
        blog_id = request.session['user_info']['blog']
        self.fields[
            'article_classification_id'].choices = Classification.objects.filter(
                blog_id=blog_id).values_list('id', 'title')
        self.fields['tags'].choices = Tags.objects.filter(
            blog_id=blog_id).values_list('id', 'title')

    publish = 0
    title = fields.CharField(widget=widgets.TextInput(attrs={
        'class': 'form-control',
        'placeholder': '文章标题'
    }))
    summary = fields.CharField(widget=widgets.Textarea(
        attrs={
            'class': 'form-control',
            'placeholder': '文章简介',
            'rows': '3'
        }))
    detail = fields.CharField(widget=widgets.Textarea(
        attrs={'class': 'kind-content'}))
    # img = fields.ImageField()
    article_type_id = fields.IntegerField(widget=widgets.RadioSelect(
        choices=Article.type_choices))
    article_classification_id = fields.ChoiceField(choices=[],
                                                   widget=widgets.RadioSelect)
    img = fields.FileField(required=False)
    tags = fields.MultipleChoiceField(choices=[],
                                      widget=widgets.CheckboxSelectMultiple)
コード例 #4
0
class RegisterForm(Form):
    error_message={
        'required':'不能为空',
        'min_length':'长度不符合',

    }
    username=fields.CharField(label='用户名',max_length=64,min_length=3    ,
                          widget=widgets.TextInput(attrs={'class': 'form-control'}),
                          error_messages=error_message)

    password=fields.CharField(max_length=64,min_length=3,label='password',widget=widgets.PasswordInput(attrs={'class':'form-control'}),
                              error_messages=error_message)

    confirm_password=fields.CharField(max_length=64,min_length=3,label='confirm_password',
                                      widget=widgets.PasswordInput(attrs={'class':'form-control'}),
                                      error_messages=error_message)

    email=fields.EmailField(label='email',widget=widgets.TextInput(attrs={'class':'form-control'}),
                            )

    nickname=fields.CharField(max_length=64,label='nickname',error_messages=error_message,
                              widget=widgets.TextInput(attrs={'class':'form-control'}),)

    avatar=fields.FileField(widget=widgets.FileInput(attrs={'id':'imgSelect','class':'avatar_input'}),
                            )

    def __init__(self,request,*args,**kwargs):

        super(RegisterForm,self).__init__(*args,**kwargs)

        self.request=request

    def clean_code(self):
        input_code=self.cleaned_data['code']
        session_code=self.request.session.get('code')
        if input_code.upper()==session_code.upper():
            return input_code
        raise ValidationError('验证码错误')

    def clean_name(self):
        name1=self.cleaned_data['username']

        data_username=models.UserInfo.objects.filter(username=name1).first()

        if data_username:
            raise ValidationError('用户已存在')
        return self.cleaned_data['username']

    def clean(self):
        p1=self.cleaned_data['password']
        print(p1,'=================')
        p2=self.cleaned_data['confirm_password']

        if p1==p2:
            print(p1, '=================')

            return None
        else:
            self.add_error('confirm_password',ValidationError('密码不一致'))
コード例 #5
0
ファイル: views.py プロジェクト: fungitive/User
class TestimgForm(forms.Form):
    title = fields.CharField()
    img = fields.FileField()
    times = fields.DateTimeField(widget=widgets.DateTimeInput(
        attrs={
            'type': "datetime-local",
            'value': "2018-09-01-14:02:30"
        }))
コード例 #6
0
ファイル: userinfo.py プロジェクト: lxj23626/Blog-System
class AvatarForm(forms.Form):
    avatar = fields.FileField(widget=widgets.FileInput(attrs={
        'id': 'avatarImg',
    }),
                              # required=False
                              )

    def __init__(self, request, *args, **kwargs):
        super(AvatarForm, self).__init__(*args, **kwargs)
        self.request = request
コード例 #7
0
class IFOPCMessageForm(Form):
    message = fields.CharField(
        required=True,
        widget=Textarea(attrs={'class': 'form-control', 'rows': 4}),
    )
    doc1 = fields.FileField(required=False)
    doc2 = fields.FileField(required=False)
    doc3 = fields.FileField(required=False)
    doc4 = fields.FileField(required=False)
    doc5 = fields.FileField(required=False)
    doc6 = fields.FileField(required=False)
    doc7 = fields.FileField(required=False)
    doc8 = fields.FileField(required=False)
コード例 #8
0
class UpForm(forms.Form):
    username = fields.CharField(initial='无名氏')
    date = forms.DateField(initial=datetime.date.today,disabled=True)
    dataset_name = fields.CharField(max_length=50,required=True)
    file = fields.FileField(required=True)

    def clean_datasetName(self):
        dataset_name = self.cleaned_data['dataset_name']
        datasets = Batch.objects.filter(dataset_name=dataset_name)
        if datasets:
            raise ValidationError('相同数据集名称已存在,请更改!')
        return dataset_name
コード例 #9
0
ファイル: emblem.py プロジェクト: cs4224485/SchoolSystem
class EmblemForm(StarkModelForm):
    issuer = fields.ChoiceField(widget=widgets.RadioSelect(),
                                label='颁发者',
                                choices=((1, '老师'), (2, '家长'), (3, '两者皆可')))

    classification = fields.ChoiceField(widget=widgets.RadioSelect(),
                                        label='徽章分类',
                                        choices=((1, '鼓励与表扬'), (2, '惩罚与批评')))
    scope = fields.ChoiceField(required=False,
                               widget=widgets.RadioSelect(),
                               label='颁发范围',
                               choices=((1, '校级别'), (2, '班级')))
    subject = forms.ModelMultipleChoiceField(
        required=False,
        label='关联课程',
        queryset=Course.objects.all(),
        widget=widgets.CheckboxSelectMultiple())
    grade = forms.ModelMultipleChoiceField(
        required=False,
        label='关联年级',
        queryset=Grade.objects.all(),
        widget=widgets.CheckboxSelectMultiple())
    icon = fields.FileField(
        widget=fields.FileInput(attrs={'style': 'display:none'}), label='徽章图片')

    emblem_type = forms.ModelChoiceField(
        required=False,
        label='徽章类型',
        queryset=EmblemType.objects.exclude(id__in=[
            item.pid.id
            for item in EmblemType.objects.filter(pid__isnull=False)
        ]))
    is_custom = fields.ChoiceField(widget=widgets.RadioSelect(),
                                   label='是否允许自定制',
                                   choices=((True, '允许'), (False, '禁止')),
                                   initial=False)

    class Meta:
        model = Emblem
        fields = (
            'emblem_name',
            'icon',
            'description',
            'classification',
            'scope',
            'is_custom',
            'issuer',
            'subject',
            'emblem_type',
            'grade',
        )
コード例 #10
0
ファイル: views.py プロジェクト: PFDsGitHub/Django_Form
class TestForm(forms.Form):
    user = fields.CharField(
        required=True,
        max_length=12,
        min_length=3,
        error_messages={},
        widget=widgets.TextInput(attrs={'class': 'c1'}),  # 定制HTML插件
        label='用户名',
        initial='请输入用户名',
        help_text='帮助信息',
        show_hidden_initial=True,  # 插件后面加一个隐藏且具有默认值的插件(可用于检验两次输入是否一致)
        validators=[],  # 自定义验证规则
        localize=True,  # 是否支持本地化
        disabled=True,  # 是否不能编辑
        label_suffix=':',
    )
    age = fields.IntegerField()

    email = fields.EmailField()

    img = fields.FileField()

    city = fields.ChoiceField(
        choices=[
            (1, '北京'),
            (2, '上海'),
            (3, '沙河'),
        ],
        initial=2,
    )
    city = fields.TypedChoiceField(
        coerce=lambda x: int(x),  # 类型转换 结果返回整型
        choices=[
            (1, '北京'),
            (2, '上海'),
            (3, '沙河'),
        ],
        initial=2,
    )

    hobby = fields.MultipleChoiceField(
        choices=[
            (1, 'a'),
            (2, 'b'),
            (3, 'c'),
        ],
        initial=[
            1,
            2,
        ],
    )
コード例 #11
0
ファイル: forms.py プロジェクト: Zouruncheng/s4blogs
class RegisterForm(Form):
    username = fields.CharField(widget=widgets.TextInput(
        attrs={"class": "form-control"}))

    password = fields.CharField(widget=widgets.PasswordInput(
        attrs={"class": "form-control"}))

    password1 = fields.CharField(widget=widgets.PasswordInput(
        attrs={"class": "form-control"}))

    nickname = fields.CharField(widget=widgets.TextInput(
        attrs={"class": "form-control"}))

    email = fields.EmailField(widget=widgets.TextInput(
        attrs={"class": "form-control"}))

    check_str = fields.CharField(widget=widgets.TextInput(
        attrs={"class": "form-control"}))

    # 上传头像的路径
    avatar = fields.FileField(widget=widgets.FileInput(attrs={"id": "img2"}))

    def __init__(self, request=None, *args, **kwargs):
        super(RegisterForm, self).__init__(*args, **kwargs)
        self.request = request

    def clean_check_str(self):
        """
        验证码判决
        :return:
        """
        check_str1 = self.cleaned_data["check_str"]
        be_checked_str = self.request.session.get("check_str")
        if check_str1.upper() == be_checked_str.upper():
            return check_str1
        from django.core.exceptions import ValidationError
        raise ValidationError("验证码输入错误")

    def clean(self):
        """
        判断注册时密码输入
        :return:
        """
        from django.core.exceptions import ValidationError
        cleaned_data = super(RegisterForm, self).clean()
        pwd = cleaned_data.get("password")
        pwd1 = cleaned_data.get("password1")
        if pwd != pwd1:
            # raise ValidationError("密码输入不一致")
            self.add_error("password1", "密码输入不一致")
コード例 #12
0
ファイル: formformat.py プロジェクト: yang121/mywebframe
class ArticleForm(Form):
    img = fields.FileField()

    title = fields.CharField(
        max_length=64,
        widget=widgets.TextInput(
            attrs={'id': 'title-input', 'placeholder': "输入文章标题", 'class': 'form-control'}
        )
    )

    content = fields.CharField(
        widget=widgets.Textarea(
            attrs={'id': 'content-input', 'placeholder': "输入文章正文", 'class': 'form-control'}
        )
    )

    summary = fields.CharField(
        widget=widgets.Textarea(
            attrs={'id': 'summary-input', 'rows': "3", 'placeholder': "输入简介", 'class': 'form-control'}
        ))

    article_type_choice = models.Article.type_choices
    article_type_id = fields.IntegerField(
        widget=widgets.Select(
            choices=article_type_choice,
            attrs={'id': 'type-input', 'placeholder': "输入简介", 'class': 'form-control'}
        )
    )

    blog = fields.IntegerField(
        widget=widgets.NumberInput(attrs={'id': 'blog-input', 'class': 'hide'})
    )

    tag_type_choice = list(models.Tag.objects.values_list('id', 'title'))

    tag = fields.MultipleChoiceField(
        choices=tag_type_choice,
        widget=widgets.CheckboxSelectMultiple(
            attrs={'id': 'tag-input', 'placeholder': "输入简介", 'class': 'checkbox-inline'}
        )
    )

    def clean_content(self):
        old = self.cleaned_data['content']
        from utils.xss_defend import xss
        return xss(old)
コード例 #13
0
class TestForm(forms.Form):
    user = fields.CharField(
        required=True, # 是否必填
        max_length=12, # 最大长度
        min_length=3,  # 最小长度
        error_messages={}, # 错误提示
        widget = widgets.TextInput(attrs={'class':'c1'}), # 定制HTML插件
        label='用户名',
        initial='请输入用户',
        help_text='asdfasdf',
        show_hidden_initial=False,
        # validators=[]
        disabled=True,
        label_suffix='->'
    )
    age = fields.IntegerField(
        label='年龄',
        max_value= 12,
        min_value=5,
        error_messages={
            'max_value':'太大了'
        }
    )

    email = fields.EmailField(
        label='邮箱'
    )

    img = fields.FileField()

    city = fields.TypedChoiceField(
        coerce=lambda x: int(x),
        choices=[(1,'上海',),(2,'北京'),(3,'沙河'),],
        initial=2
    )
    bobby = fields.MultipleChoiceField(
        choices=[(1,'刚娘'),(2,'铁娘'),(3,'钢弹')],
        initial=[1,2]
    )

    xoo = fields.FilePathField(
        path='app01'
    )
コード例 #14
0
class RegisterForm(Form):
    username=fields.CharField(
        widget=widgets.TextInput(attrs={'class':"form-control"})
    )
    password=fields.CharField(
        widget=widgets.PasswordInput(attrs={'class': "form-control"})
    )
    password2=fields.CharField(
        widget=widgets.PasswordInput(attrs={'class': "form-control"})
    )
    avater=fields.FileField(widget=widgets.FileInput(attrs={'id':"imgSelect" ,'class':"f1"}))
    code=fields.CharField(
        widget=widgets.TextInput(attrs={'class': "form-control"})
    )
    def __init__(self,request,*args,**kwargs):
        super(RegisterForm, self).__init__(*args,**kwargs)
        self.request=request

    def clean_code(self):
        input_code=self.cleaned_data['code']
        session_code=self.request.session.get('code')
        if input_code.upper()==session_code.upper():
            return input_code
        raise ValidationError('验证码错误')

    # def clean_password2(self):
    #     p1=self.cleaned_data['password']
    #     p2=self.cleaned_data['password2']
    #     # if p1==p2:
    #     #     return p2
    #     # raise ValidationError('密码错误')
    #     return p2

    def clean(self):
        p1 = self.cleaned_data.get('password')
        p2=self.cleaned_data.get('password2')
        print(p1==p2)
        if p1==p2:
            # return self.cleaned_data  #return None都可以
            return None
        else:
            # raise ValidationError('密码不一致')
            self.add_error("password2",ValidationError("密码不一致"))
コード例 #15
0
class TaxForm(forms.GSoCModelForm):
    """Django form for the student tax form."""
    class Meta:
        model = profile_model.GSoCStudentInfo
        css_prefix = 'student_form'
        fields = ['tax_form']
        widgets = {}

    tax_form = fields.FileField(label='Upload new tax form', required=True)

    def fileFieldName(self):
        """Returns the name of the FileField in this form."""
        return 'tax_form'

    def _admin(self):
        return self.request_data.kwargs['admin']

    def _r(self):
        if self._admin():
            self.request_data.redirect.profile()
        else:
            self.request_data.redirect.program()
        return self.request_data.redirect

    def _urlName(self):
        if self._admin():
            return 'gsoc_tax_form_download_admin'
        else:
            return 'gsoc_tax_form_download'

    def __init__(self, request_data=None, **kwargs):
        super(TaxForm, self).__init__(**kwargs)
        self.request_data = request_data
        field = self.fields['tax_form']

        if not (self.instance and self.instance.tax_form):
            field._file = None
            field._link = None
        else:
            field._file = self.instance.tax_form
            field._link = self._r().urlOf(self._urlName())
コード例 #16
0
ファイル: views1.py プロジェクト: wuwuming/python_practice
class FM(forms.Form):
    # user = forms.CharField()
    # pwd = forms.CharField()
    # email = forms.EmailField()

    # 字段本身只做认证
    user = fields.CharField(error_messages={'required': "用户名不能为空"},
                            widget=widgets.Input(attrs={'id': 'username'}),
                            label="用户名")
    pwd = fields.CharField(
        max_length=12,
        min_length=6,
        error_messages={
            'required': "密码不能为空",
            'min_length': "密码长度不能小于6",
            'max_length': "密码长度不能大于12"
        },
        widget=widgets.PasswordInput(attrs={'id': 'pwd'}),
        # widget=widgets.PasswordInput,
    )
    gender = fields.ChoiceField(
        choices=((1, '男'), (2, '女')),
        initial=2,
        label="性别:"
        # widget=widgets.RadioSelect
        # widget=widgets.Select
    )
    # gender = fields.MultipleChoiceField(
    #     choices=((1, '男'), (2, '女')),
    #     initial=2,
    #     label="性别:"
    #     # widget=widgets.RadioSelect
    # )
    email = fields.EmailField(error_messages={
        'required': "邮箱不能为空",
        'invalid': "邮箱格式不对"
    },
                              widget=widgets.Input(attrs={'id': 'em'}))

    f = fields.FileField()
    f_show = fields.FilePathField(path='cache')
コード例 #17
0
ファイル: forms.py プロジェクト: lafitehhq/PythonProject
class FieldForm(DForms.Form):
    f1 = fields.CharField(max_length=6,
                          required=True,
                          initial="小虎",
                          validators=[
                              RegexValidator(r'^[0-9]+$', '11111', code='f1'),
                              RegexValidator(r'^159[0-9]+$', '2222', code='f2')
                          ],
                          error_messages={
                              'required': '不能为空',
                              'f1': 'geshicuowu',
                              'f2': 'kajdlfkjasldf',
                              'max_length': 'taichangla'
                          },
                          label='爱抚1',
                          show_hidden_initial=True,
                          disabled=False,
                          label_suffix="-->")
    # f2 = fields.RegexField(r'^159[0-9]+$')
    f3 = fields.FileField()

    f4 = fields.ChoiceField(initial=2,
                            choices=[(
                                1,
                                '赵四',
                            ), (2, "刘能"), (3, '六大脑袋')])
    f5 = fields.TypedChoiceField(coerce=lambda x: int(x),
                                 initial=2,
                                 choices=[(
                                     1,
                                     '赵四',
                                 ), (2, "刘能"), (3, '六大脑袋')])

    f6 = fields.MultipleChoiceField(initial=[1, 2],
                                    choices=[(
                                        1,
                                        '赵四',
                                    ), (2, "刘能"), (3, '六大脑袋')])
    f7 = fields.SplitDateTimeField()
    f8 = fields.FilePathField(path='app01', allow_folders=True, recursive=True)
コード例 #18
0
class FM(forms.Form):
    #第一种方式,最简版:
    # user = fields.CharField(
    # initial = 2,
    # widget = widgets.RadioSelect(choices=((1, '上海'), (2, '北京'),))
    #          )
    user = fields.CharField(
        error_messages={'required': '用户名不能为空.'},
        widget=widgets.TextInput(
            attrs={'class': 'c1'}),  #定义插件,修改标签类型,CSS样式,属性等
        label='用户名',
        # initial='root',#默认值
        help_text='这是帮助信息',
    )
    pwd = fields.CharField(
        max_length=12,
        min_length=6,
        error_messages={
            'required': '密码不能为空',
            'min_length': '密码长度不能小于6',
            'max_length': '密码长度不能大于12'
        },
        widget=widgets.PasswordInput(
            attrs={'style': 'background-color:blue;color:white'}))
    email = fields.EmailField(error_messages={
        'required': '邮箱不能为空.',
        'invalid': "邮箱格式错误"
    })
    f = fields.FileField()
    p = fields.FilePathField(path='app1')
    city = fields.ChoiceField(choices=[
        (0, '选项1'),
        (1, '选项2'),
        (2, '选项3'),
    ])
    city1 = fields.MultipleChoiceField(choices=[
        (0, '选项1'),
        (1, '选项2'),
        (2, '选项3'),
    ])
コード例 #19
0
class EnrollmentForm(forms.GSoCModelForm):
    """Django form for the student enrollment form."""

    Meta = object

    enrollment_form = fields.FileField(label='Upload new enrollment form',
                                       required=True)

    def fileFieldName(self):
        """Returns the name of the FileField in this form."""
        return 'enrollment_form'

    def _admin(self):
        return self.request_data.kwargs['admin']

    def _r(self):
        if self._admin():
            self.request_data.redirect.profile()
        else:
            self.request_data.redirect.program()
        return self.request_data.redirect

    def _urlName(self):
        if self._admin():
            return 'gsoc_enrollment_form_download_admin'
        else:
            return 'gsoc_enrollment_form_download'

    def __init__(self, request_data=None, **kwargs):
        super(EnrollmentForm, self).__init__(**kwargs)
        self.request_data = request_data
        field = self.fields['enrollment_form']

        if not (self.instance and self.instance.enrollment_form):
            field._file = None
            field._link = None
        else:
            field._file = self.instance.enrollment_form
            field._link = self._r().urlOf(self._urlName())
コード例 #20
0
def chooseField(question):
    """
    Choose a proper form field for the question.

    :param question: question to be allocated a field
    :type question: Question
    :return: the corresponding field
    :rtype: fields.Field
    """
    type = question.type
    if type == 1:
        choices = question.choice_set.values_list('order', 'description')
        return fields.ChoiceField(choices=choices,
                                  widget=RadioSelect(),
                                  label=question.description,
                                  label_suffix='',
                                  required=question.require)
    elif type == 2:
        choices = question.choice_set.values_list('order', 'description')
        return fields.MultipleChoiceField(choices=choices,
                                          widget=CheckboxSelectMultiple(),
                                          label=question.description,
                                          label_suffix='',
                                          required=question.require)
    elif type == 3:
        return fields.CharField(widget=TextInput(),
                                label=question.description,
                                label_suffix='',
                                required=question.require)
    elif type == 4:
        return fields.FileField(widget=FileInput(),
                                label=question.description,
                                label_suffix='',
                                required=question.require)
    else:
        return None
コード例 #21
0
ファイル: forms.py プロジェクト: fungitive/User
class ArticleForm(forms.Form):
    title = fields.CharField(label='标题',max_length=40,
                             error_messages={
                                 'required':'标题不能为空',
                                 'max_length':'长度不能超过20个字'
                             },
                             widget=widgets.TextInput(attrs={'class': "form-control",'placeholder':"标题",'size':"60"})
                             )
    author = fields.CharField(label='作者',max_length=12,
                              error_messages={
                                  'required': '作者不能为空',
                                  'max_length': '长度不能超过6个字'
                              },
                              widget=widgets.TextInput(attrs={'class': "form-control",'placeholder':"作者"}))
    summary = fields.CharField(label='摘要',max_length=200,
                               error_messages={
                                   'required': '摘要不能为空',
                                   'max_length': '长度不能超过100个字'
                               },
                               widget=widgets.Textarea(attrs={'row':"2",'style':"height:60px;",'class': "form-control",'placeholder':"摘要不要超过100字"}))
    img = fields.FileField(label='缩略图',required=True)
    content = fields.CharField(label='内容',
                               error_messages={
                                   'required': '文章内容不能为空',
                               },
                                widget=widgets.Textarea(attrs={'class': "form-control",'id': "kindeditor"}))
    tag = forms.ModelMultipleChoiceField(label='标签',queryset=Tag.objects.all(),
                                 error_messages={
                                     'required': '请选择标签',
                                 },
                                 widget=widgets.SelectMultiple(attrs={'class': "form-control"}))
    classify = forms.ModelChoiceField(label='分类',queryset=Classify.objects.all(),
                                      error_messages={
                                          'required': '请选择分类',
                                      },
                                      widget=widgets.Select(attrs={'class': "form-control"}))
コード例 #22
0
class RegisterForm(forms.Form):
    email = fields.EmailField()
    username = fields.CharField()
    password = fields.CharField()
    avatar = fields.FileField(required=False)
コード例 #23
0
class ChangeInfoForm(forms.Form):
    username = fields.CharField()
    password = fields.CharField()
    avatar = fields.FileField(required=False)
コード例 #24
0
class RegForm(Form):
    email = fields.EmailField(
        required=True,
        error_messages={
            'required': '请输入邮箱地址',
            'invalid': '请输入正确的邮箱格式',
        },
        widget=widgets.TextInput(attrs={
            'placeholder': '需要通过邮件激活账户',
            'class': 'form-control'
        }))
    # widget=widgets.TextInput(attrs={'placeholder': '需要通过邮件激活账户'})),
    tel = fields.IntegerField(
        required=True,
        error_messages={
            'required': '请输入手机号码',
        },
        widget=widgets.TextInput(attrs={
            'placeholder': '激活帐户需要手机短信验证',
            'class': 'form-control'
        }))

    username = fields.CharField(
        required=True,
        max_length=18,
        min_length=4,
        error_messages={
            'required': '请输入登陆用户名',
            'min_length': '不合要求,至少为4个字符',
            'max_length': '不合要求,至多为18个字符',
        },
        widget=widgets.TextInput(attrs={
            'placeholder': '登录用户名,不少于4个字符',
            'class': 'form-control'
        }))

    nickname = fields.CharField(
        required=True,
        max_length=18,
        min_length=4,
        error_messages={
            'required': '请输入显示名称',
            'min_length': '不合要求,至少为4个字符',
            'max_length': '不合要求,至多为18个字符',
        },
        widget=widgets.TextInput(attrs={
            'placeholder': '即昵称,不少于2个字符',
            'class': 'form-control'
        }))

    avatar = fields.FileField(required=False)

    password = fields.CharField(
        required=True,
        min_length=8,
        max_length=30,
        error_messages={
            'required': '请输入密码',
            'min_length': '不合要求,密码长度要求8~30位',
            'max_length': '不合要求,密码长度要求8~30位'
        },
        widget=widgets.TextInput(attrs={
            'placeholder': '至少8位,必须包含字母、数字',
            'class': 'form-control'
        }),
        validators=[RegexValidator('\d+', '密码必须包含字母、数字的组合')])
    repeat_password = fields.CharField(
        required=True,
        error_messages={'required': '请输入确认密码'},
        widget=widgets.TextInput(attrs={
            'placeholder': '请输入确认密码',
            'class': 'form-control'
        }))

    def clean_email(self):
        email = self.cleaned_data['email']
        is_exsit = models.UserInfo.objects.filter(email=email)
        if is_exsit:
            raise ValidationError('邮箱已经存在!')
        else:
            return email

    def clean_username(self):
        user = self.cleaned_data['username']
        is_exsit = models.UserInfo.objects.filter(username=user)
        if is_exsit:
            raise ValidationError('登陆用户名已被使用!')
        else:
            return user

    def clean_nickname(self):
        nickname = self.cleaned_data['nickname']
        is_exsit = models.UserInfo.objects.filter(nickname=nickname)
        if is_exsit:
            raise ValidationError('显示名称已被使用!')
        else:
            return nickname

    def clean(self):
        password = self.cleaned_data.get('password')
        repeat_password = self.cleaned_data.get('repeat_password')
        if password != repeat_password:
            raise ValidationError('确认密码错误')
        else:
            return self.cleaned_data
コード例 #25
0
 def callback(*args, **kwargs):
     return djangofields.FileField()
コード例 #26
0
class TestForm(forms.Form):
    user = fields.CharField(
        required=True,  # 是否为空
        max_length=12,  # 最大长度
        min_length=3,  # 最小长度
        error_messages={},
        # widget=widgets.Select(),     # 定制HTML插件
        label='用户名',
        # initial='用户名',
        # disabled=True,
        label_suffix=':',
    )
    age = fields.IntegerField(
        required=True,
        label='年龄',
        max_value=12,
        min_value=1,
    )
    email = fields.EmailField(required=True, label='Email')
    image = fields.FileField()
    city = fields.TypedChoiceField(
        coerce=lambda x: int(x),
        choices=[(
            1,
            '上海',
        ), (
            2,
            '北京',
        ), (
            3,
            '武汉',
        )],
        initial=2,
    )
    hobby = fields.MultipleChoiceField(choices=[(1, '篮球'), (2, '足球'),
                                                (3, '乒乓球')], )
    # xdd = fields.CharField(
    #     # widget=widgets.Select(choices=[(1, '张三',), (2, '李四',), (3, '王五',)])
    #     widget=widgets.CheckboxInput()
    # )
    xdd = fields.MultipleChoiceField(
        initial=[
            2,
        ],
        choices=((
            1,
            '上海',
        ), (
            2,
            '北京',
        ), (
            3,
            '天津',
        )),
        widget=widgets.CheckboxSelectMultiple,
    )
    # 单radio,值为字符串
    address = fields.CharField(
        initial=2,
        widget=widgets.RadioSelect(choices=(
            (1, '上海'),
            (2, '北京'),
        )),
    )
コード例 #27
0
ファイル: views.py プロジェクト: winchook/Python
class TestForm(forms.Form):
    user = fields.CharField(
        required=True,  #判断是否必填
        max_length=12,  #最大长度
        min_length=3,  #最下长度
        error_messages={},  #错误提示
        # widget = widgets.Select(),#widget可以定制HTML插件
        label='用户名',
        # initial='请输入用户名',#设置默认值
        disabled=True,
    )

    age = fields.IntegerField(label='年龄',
                              max_value=12,
                              min_value=5,
                              error_messages={'max_value': '输入的值超出限制'})

    email = fields.EmailField(label='邮箱', )

    #上传文件
    # 注:需要PIL模块,Pillow
    # 以上两个字典使用时,需要注意两点:
    # - form表单中
    # enctype = "multipart/form-data"
    # - view函数中
    # obj = MyForm(request.POST, request.FILES)

    img = fields.FileField(label='上传文件', )

    # city = fields.ChoiceField(
    #     label='城市',
    #     #数据源写在choices里面即可
    #     choices=[(1,'天津'),(2,'北京'),(3,'陕西')],
    #     #下拉框里面的默认值设定
    #     initial = 3,
    # )

    city = fields.TypedChoiceField(
        label='Typed城市',
        #接收一个参数,将该参数转换为int再返回
        coerce=lambda x: int(x),
        #数据源写在choices里面即可
        choices=[(1, '天津'), (2, '北京'), (3, '陕西')],
        #下拉框里面的默认值设定
        initial=3,
    )

    hobby = fields.MultipleChoiceField(
        label='爱好',
        choices=[(1, '爬山'), (2, '阅读'), (3, '健身')],
        #默认值多个,所以可以写列表
        initial=[1, 3],
    )

    #下拉单选框的两种写法
    selectA = fields.CharField(widget=widgets.Select(
        choices=[(1, 'winchoo'), (2, 'chason'), (3, '张三')]), )
    selectB = fields.ChoiceField(choices=[(1, 'winchoo'), (2, 'chason'),
                                          (3, '张三')], )

    #下拉多选框的写法
    Multiselect = fields.MultipleChoiceField(
        choices=[(1, 'winchoo'), (2, 'chason'), (3, '张三')],
        widget=widgets.SelectMultiple(attrs={'class': 'c1'}),  #这里的class是自定义属性
    )

    #单选框checkbox
    checkboxuser = fields.CharField(widget=widgets.CheckboxInput(), )

    #多选框checkbox
    Multicheckbox = fields.MultipleChoiceField(
        initial=[2, 'winchoo'],
        choices=((1, 'chason'), (2, 'winchoo'), (3, 'Milton')),
        widget=widgets.CheckboxSelectMultiple,
    )

    #单选RadioSelect
    Radioselect = fields.ChoiceField(
        choices=((1, '马来西亚'), (2, '美国'), (3, '日本')),
        initial=2,
        widget=widgets.RadioSelect,
    )
コード例 #28
0
ファイル: formformat.py プロジェクト: yang121/mywebframe
class RegisterForm(Form):
    username = fields.CharField(
        widget=widgets.TextInput(attrs={'placeholder': '请填写用户名', 'class': "form-control", 'id': "inputUserName"}),
        label='',
        label_suffix='',
        max_length=32,
        min_length=5,
        required=True,
        error_messages={
            'required': "请填写用户名",
            'min_length': "用户名长度必须大于5",
            'max_length': "用户名长度必须小于32",
        }
    )

    nickname = fields.CharField(
        widget=widgets.TextInput(attrs={'placeholder': '请填写昵称', 'class': "form-control", 'id': "inputNickname", 'null': 'true'}),
        label='',
        label_suffix='',
        max_length=32,
        required=False,
        error_messages={
            'required': "请填写昵称",
            'max_length': "昵称长度必须小于32",
        }
    )

    avatar = fields.FileField(
        widget=widgets.FileInput(attrs={'id': "imgSelect", 'null': 'true'}),
        required=False,
    )

    password = fields.CharField(
        widget=widgets.PasswordInput(attrs={'placeholder': '请填写密码', 'class': "form-control", 'id': "inputPassWord"}),
        label='',
        label_suffix='',
        max_length=64,
        min_length=6,
        required=True,
        error_messages={
            'required': "请填写密码",
            'min_length': "密码长度必须大于5",
            'max_length': "密码长度必须小于32",
        }
    )

    email = fields.EmailField(
        widget=widgets.EmailInput(attrs={'placeholder': '请填写电子邮箱', 'class': "form-control", 'id': "inputEmail", 'null': 'true'}),
        label='',
        label_suffix='',
        required=False,
        error_messages={
            'required': "请填写邮箱",
            'invalid': '邮箱格式错误',
        }
    )

    telephone = fields.CharField(
        widget=widgets.TextInput(attrs={'placeholder': '请输入电话号码', 'class': "form-control", 'id': "inputTelephone"}),
        label='',
        label_suffix='',
        error_messages={
            'required': "请填写手机号码",
            'invalid': '请填写正确的手机号码',
        },
        required=True,
        validators=[RegexValidator(r'^1\d{10}$', '请填写正确的手机号码')],
        max_length=11,
    )

    gender = fields.ChoiceField(
        widget=widgets.RadioSelect(attrs={'class': "form-control", 'id': "inputGender", 'null': 'true'}),
        choices=User.gender_choices,
        label='',
        label_suffix='',
        required=False,
    )

    def clean_username(self):
        username = self.cleaned_data.get('username')
        if username:
            if models.User.objects.filter(username=username).first():
                raise ValidationError('此用户名已被注册')
            return username

    def clean_email(self):
        email = self.cleaned_data.get('email')
        if email:
            if models.User.objects.filter(email=email).first():
                raise ValidationError("此邮箱已被注册")
            return email

    def clean_telephone(self):
        telephone = self.cleaned_data.get('telephone')
        if telephone:
            if models.User.objects.filter(telephone=telephone).first():
                raise ValidationError("此手机号码已被注册")
            return telephone
コード例 #29
0
class DetailedForm(forms.Form):
    """
    required:是否必填
    error_messages:錯誤提示(要透過{{ obj.errors.user.0 }}調用)
    widget:訂製html插件(重要)
    label:訂製標籤名(要透過{{ obj.user.label }}調用)
    initial:默認值
    validators:自訂製驗證規則
    disabled:是否禁止編輯
    """
    user = fields.CharField(
        required=True,
        max_length=12,  # 最大長度
        min_length=3,  # 最小長度
        error_messages={},
        widget=widgets.TextInput(attrs={'n': 123}),  # 參數為自定義屬性
        label="用戶名",
        initial='請輸入用戶名',
        disabled=True,
    )
    age = fields.IntegerField(
        label="年齡",
        max_value=1000,  # 最大值
        min_value=0,  # 最小值
        error_messages={
            'max_value': '太大了',
        })
    email = fields.EmailField(label="信箱", )
    smath = fields.DecimalField()  # 小數
    file = fields.FileField()
    city = fields.ChoiceField(
        choices=[(1, "上海"), (2, "北京"), (3, "南京")],  # (value, 顯示文字)
        initial=3,  # 默認value=3
    )
    hobby = fields.MultipleChoiceField(
        choices=[(1, "籃球"), (2, "電動"), (3, "小說")],  # (value, 顯示文字)
        initial=[1, 2],
    )
    # date = fields.DateField()  # 格式:2015-09-01
    # datetime = fields.DateTimeField()  # 格式:2015-09-01 11:12
    radio = fields.ChoiceField(
        choices=[(1, 'man'), (2, 'woman')],
        widget=widgets.RadioSelect(),
    )
    check = fields.MultipleChoiceField(
        choices=[(1, 'man'), (2, 'woman')],
        widget=widgets.CheckboxSelectMultiple(),
    )
    from django.core.validators import RegexValidator
    my = fields.CharField(
        # 自定義正則一
        # validators可設置多個RegexValidator
        # RegexValidator(正則, 錯誤信息)
        validators=[
            RegexValidator(r"^[0-9]+$", "請輸入數字"),
            RegexValidator(r"^87[0-9]+$", "請以87開頭")
        ], )
    # 自定義正則二
    # fields.RegexField(正則),只可設置單個正則
    my2 = fields.RegexField(r"^[0-9]+$", error_messages={
        "invalid": "請輸入數字",
    })
コード例 #30
0
ファイル: formsclass.py プロジェクト: calvinxhk/homework
class Register(Form):
    name = fields.CharField(
        min_length=6,
        max_length=16,
        error_messages={
            'required': '用户名不能为空',
            'min_length': '用户名至少6个字符'
        },
        widget=widgets.TextInput(attrs={
            'class': 'form-control',
            'aria-describedby': 'basic-addon1'
        }))
    pwd = fields.CharField(
        max_length=16,
        min_length=6,
        error_messages={
            'required': '密码不能为空',
            "invalid": '不能包含非法字符',
            'min_length': '密码至少6个字符'
        },
        widget=widgets.PasswordInput(attrs={
            'class': 'form-control',
            'aria-describedby': 'basic-addon1'
        }))
    pwd2 = fields.CharField(
        max_length=16,
        min_length=6,
        error_messages={
            'required': '密码不能为空',
            "invalid": '不能包含非法字符'
        },
        widget=widgets.PasswordInput(attrs={
            'class': 'form-control',
            'aria-describedby': 'basic-addon1'
        }))
    nickname = fields.CharField(
        max_length=16,
        min_length=4,
        error_messages={
            'required': '昵称不能为空',
            "invalid": '不能包含非法字符'
        },
        widget=widgets.TextInput(attrs={
            'class': 'form-control',
            'aria-describedby': 'basic-addon1'
        }))
    email = fields.EmailField(
        max_length=32,
        min_length=8,
        error_messages={
            'required': '邮箱不能为空',
            "invalid": '请输入正确邮箱'
        },
        widget=widgets.EmailInput(attrs={
            'class': 'form-control',
            'aria-describedby': 'basic-addon1'
        }))
    phone = fields.RegexField(
        '^1\d{10}',
        error_messages={
            'required': '手机不能为空',
            "invalid": '请输入正确手机号'
        },
        widget=widgets.TextInput(attrs={
            'class': 'form-control',
            'aria-describedby': 'basic-addon1'
        }))
    avatar = fields.FileField(widget=widgets.FileInput(
        attrs={
            'style':
            "width:200px;height:200px;opacity:0;position:absolute;top:0"
        }))
    piccode = fields.CharField(
        error_messages={
            'required': '验证码不能为空',
            "invalid": '请输入正确验证码'
        },
        widget=widgets.TextInput(attrs={
            'class': 'form-control',
            'aria-describedby': 'basic-addon1'
        }))

    def __init__(self, request, *args, **kwargs):
        """
        引入request参数
        :param request:
        :param args:
        :param kwargs:
        """
        super(Register, self).__init__(*args, **kwargs)
        self.request = request

    def clean_piccode(self):
        inputcode = self.cleaned_data['piccode']
        turecode = self.request.session['piccode']
        if inputcode == turecode:
            return inputcode
        raise ValidationError('验证码错误')

    def clean_pwd2(self):
        pwd = self.cleaned_data['pwd']
        pwd2 = self.cleaned_data['pwd2']
        if pwd == pwd2:
            return pwd
        raise ValidationError('两次密码不一致')