java撩妹代码,ModelForm(示例代码)

ModelForm

为了简单我们今天不撩妹,专聊一个神奇的宝贝组件modelform,看到这个单词我们就明白这个组件就是把model和form组合起来,大家记住了!

就比如我们在使用的数据库中建立了一个客户表,字段有姓名,年龄,爱好,邮箱,电话,住址,注册,老婆姓名(这是老王最爱的)等一大推消息,创建思路如下:

1.我们在html文件里使用form表单罗列这些字段,让用户自己填写,

2.只要使用了ModelForm就绕开了form的复杂性.直接来干就行,他早就在内部为我们生成好了

使用:

1.首先在py文件中导入ModelForm

from django.forms import ModelForm

在视图函数类定义一个类,记住一定要继承ModelForm,在这个类中在写另一个原类Meta(规定的 注意首字母大写)

class CustomerModelForm(forms.ModelForm):

class Meta:

model=models.Customer

fields='__all__'

exclude=['delete_status']

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

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

for name, field in self.fields.items():

if name=='course':

continue

field.widget.attrs.update({'class':'form-control'})

Model.py

class Customer(models.Model):

'''

客户表(最开始大家都是客户,销售就是不停的撩你,你还没有交钱上床就是客户)

'''

qq = models.CharField(verbose_name='QQ',max_length=64,unique=True,help_text='QQ号必须唯一')

qq_name=models.CharField('QQ昵称',max_length=64,blank=True,null=True)

name=models.CharField('姓名',max_length=32,help_text='学员报名后请改成真实姓名')# #可为空,有些人就不愿意给自己的真实姓名

sex_type=(('male','男'),('female','女'))

sex=models.CharField('性别',choices=sex_type,max_length=16,default='male',blank=True,null=True)#存的是male或者female,字符串

birthday = models.DateField('出生日期', default=None, help_text="格式yyyy-mm-dd", blank=True, null=True)

phone = models.BigIntegerField('手机号', blank=True, null=True) # 手机号改成字符串的,不然不好搜索

source = models.CharField('客户来源', max_length=64, choices=source_type, default='qq')

introduce_from = models.ForeignKey('self', verbose_name="转介绍自学员", blank=True, null=True,

on_delete=models.CASCADE) # self指的就是自己这个表,和下面写法是一样的效果,自关联

course = MultiSelectField("咨询课程", choices=course_choices) # 多选,并且存成一个列表的格式,通过modelform来用的时候,会成为一个多选框

class_type = models.CharField("班级类型", max_length=64, choices=class_type_choices, default='fulltime')

date = models.DateTimeField("咨询日期", auto_now_add=True) # 这个没啥用昂,我问销售,销售说是为了一周年的时候给客户发一个祝福信息啥的

last_consult_date = models.DateField("最后跟进日期", auto_now_add=True) # 考核销售的跟进情况,如果多天没有跟进,会影响销售的绩效等

next_date = models.DateField("预计再次跟进时间", blank=True, null=True) # 销售自己大概记录一下自己下一次会什么时候跟进,也没啥用

consultant = models.ForeignKey('Userinfo', verbose_name="销售", blank=True, null=True, on_delete=models.CASCADE)

ass_list = models.ManyToManyField('ClassList', verbose_name="已报班级", blank=True)

delete_status = models.BooleanField(default=False)

class Meta:

ordering = ['id', ]

verbose_name = '客户信息表'

verbose_name_plural = '客户信息表'

def __str__(self):

return self.name + ":" + self.qq

html

{% extends 'starter.html' %}

{% load mytags %}

{% block title %}

{% if tag == 1%}

公户信息展示

{% else %}

我的客户

{% endif %}

{% endblock %}

{% block content %}

关键字

qq

姓名

go

{% csrf_token %}

{% if tag == 1 %}

公户转私户

{% else %}

私户转公户

{% endif %}

go

{% if tag == 1 %}

添加客户

{% endif %}

{# #}

#

序号QQ姓名性别客户来源咨询课程状态销售跟进记录操作

{% for customer in all_customers %}

{{ request|list_number:forloop.counter }}{{ customer.qq }}{{ customer.name }}{{ customer.get_sex_display }}{{ customer.get_source_display }}{{ customer.get_course_display }}{{ customer.get_status_display }}{{ customer.consultant.username|default:'暂无' }}

查看详情

{#  | #}

 |

 

{% empty %}

sorry,没有查询相关用户信息,请核对后再查!!!!!

{% endfor %}

{% endblock %}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值