资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

Djangodefclean()函数如何对表单中数据进行验证-创新互联

创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!

站在用户的角度思考问题,与客户深入沟通,找到兴安盟乌兰浩特网站设计与兴安盟乌兰浩特网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站建设、成都网站建设、企业官网、英文网站、手机端网站、网站推广、域名注册网站空间、企业邮箱。业务覆盖兴安盟乌兰浩特地区。

最近写的资源策略管理,在ceilometer 中创建alarm时,name要求是不能重复的,所以在创建policy的时候,要对policy的name字段进行验证,而django中正好拥有强大的表单数据验证的功能。

#这是policy中的name字段,在表单的数据进行提交的时候,所有的数据流会经过clean()这个函数

name = forms.CharField(max_length=255, label=_("Name"))

#在clean函数中先取出表单中的name字段,在从数据库里面拿到所有的数据进行检查

  def clean(self):
    cleaned_data = super(CreatePolicyForm, self).clean()
    name = cleaned_data.get('name')

    try:
      policys = api.nova.policy_list(self.request)
    except:
      exceptions.handle(request,
               _('Unable to retrieve policys list.'))
    if policys is not None and name is not None:
      for policy in policys:
        if policy.name.lower() == name.lower():
          raise forms.ValidationError(
            _('The name "%s" is already used by another policy.')
            % name
          )
    return cleaned_data

新闻标题:Djangodefclean()函数如何对表单中数据进行验证-创新互联
网站路径:http://cdkjz.cn/article/gphso.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220