zoukankan      html  css  js  c++  java
  • doraemon的python 偷懒之后的更新 CRM项目 后台管理系统

    ### 12. CRM项目
    
    1.项目需求
    
    cunstomer relationship managemennt 客户关系管理系统
    
    1. 注册
    2. 登录
    3. 销售:
       1. 客户信息的管理
          1. 展示
          2. 新增
          3. 编辑
          4. 删除
       2. 跟进记录管理
          1. 展示
          2. 新增
          3. 编辑
          4. 删除
       3. 报名记录的管理
          1. 展示
          2. 新增
          3. 编辑
          4. 删除
       4. 缴费记录的管理
          1. 展示
          2. 新增
          3. 编辑
          4. 删除
    
    
    
    4.表结构
    
    1. 用户表
    2. 客户表
    3. 跟进记录表
    4. 报名记录表
    5. 缴费记录表
    6. 班级表
    7. 课程记录表
    8. 学习记录表
    
    ```python
    class RegForm(forms.Form):
        username = forms.CharField(
            min_length = 6,
            max_length = 32,
            label = '用户名',
            initial = '初始值',
            error_messages = {
                'required':'必填',
                'min_length':'最小长度',
                'invalid':''
            },
            validators = [],
            widget = forms.TextInput(attrs = {''})
            
        )
        gender = forms.ChoiceField(choices=[(1,''),(2,'')])
        
        def clean_username(self):
            pass
            #校验成功 返回该字段的值
            #校验不成功 抛出异常
            
        def clean(self):
            pass
            #校验成功  返回所有的值
            #校验不成功 抛出异常
            #self.add_error(filed,error)
            
            
    class RegForm(forms.ModelForm):
        password = forms.CharField(min_length=6,
                                   
         widget = forms.Passwordput(attrs={'placeholder':'您的密码','autocomplete':'off'}))
        re_password = forms.CharField(min_lenth=6,
        widget=forms.PasswordInput(attrs={'placeholder':'您的密码','autocomplete':'off'}))
        
        class Meta:
            model = models.UserProfile
            fields = '__all__'   #表示所有,但是也可以用['username',]  表示其中的部分字段
            exclude = ['is_active']
            labels = {'username':'用户名'}
            widgets = {
                'username':forms.EmailInput(attrs={
                    'placeholder':'您的用户名','autocomplete':'off',}),
                'mobile':forms.TextInput(attrs=[
                    'placeholder';'您的手机号''autocomplete':'off',])
                'name':forms.TextInput(attrs=
                     'placeholder':'您的真实姓名','autocomplete':'off')
            }
            error_messages = {
                'username':{
                    'required':'必填',
                    'invalid':'邮箱格式不正确'
                }
            }
       def clean(self):
            password = self.clean_data.get('password','')
            re_password = self.cleaned_data.get('re_password','')
            if password = re_password:
            #对密码进行加密
                md5 = haslib.md5()
                md5.update(password.encode('utf-8'))
                self.clean_data['password'] = md5.hexdigest()
                return self.cleaned_data
            else:
                self.add_error('re_password','两次密码不一致')
                raise ValidationError('两次密码不一致')
        
    ```
    
    #### 12.1 获取字段的方式
    
    1.展示客户信息
    
    获取普通的字段:对象.字段名
    
    获取有choice参数:
    
    对象.字段名     ————》数据库的数据
    
    '对象.get_字段名_display()'  ————数据库的数据对应的中文提示
    
    外键获取:
    
    对象.外键   ————》 外键对象   定义_str_
    
    对象.外键.字段
    
    自定义方法:
    
    多对多:
    
    ```python
    def show_class(self):
        return ''.join([str(i) for i in self.class_list.all()])
    ```
    
    自定义的需求
    
    ```python
    def show_status(self):
        color_dict = {
            'signed':'green',
            'unregistered':'red',
            'studying':'blue',
            'paid_in_full':'gold'
        }
        return mark_safe(
            '<span style= "color:white;background:{};padding:5px">{}</span>'.format(color_dict.get(self.status),self.get_status_display()))
    ```
  • 相关阅读:
    sql server 笔记(数据类型/新建、修改、删除数据表/)
    在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: Nam
    jquery 操作 checkbox select
    layui常见问题
    Sublime Text 3下载-汉化-插件配置
    CSS前端开发学习总结、一
    如何用 JavaScript 下载文件
    腾讯大王卡、天王卡代申请
    新人报道~cnblogs
    Node.js
  • 原文地址:https://www.cnblogs.com/doraemon548542/p/11746133.html
Copyright © 2011-2022 走看看