六.1--客户展示之新增客户功能

添删一个功能时,都是从你的url开始写起.你的url就对应一个功能

1.先做展示;

(1).crm/urls.py中:

#增加客户
url(r'^customer/add/',views.add_customer,name='add_customer'),

(2).views.py中:

#增加客户
def add_customer(request):
return render(request,'crm/add_customer.html')

(3).templates/crm/add_customer.html:

{% extends 'layout.html' %}
{% block content %}

{% endblock %}

效果如下:这样模版就好了。

六.1--客户展示之新增客户功能_第1张图片

 

 

 

开始往它面板中添加内容部分,它的内容部分要用form表单---modelform实现

(4).开始写form,crm/forms.py中:----跟form相关的都写在此文件中

# 客户form
class CustomerForm(forms.ModelForm):
class Meta:#做配置用
model = models.Customer
fields = '__all__' #要显示的字段
widgets = { #此插件作用是把course课程字段改成多选框
'course': forms.widgets.SelectMultiple
}
def __init__(self, *args, **kwargs):#初始化--用来给多个插件做css样式
super().__init__(*args, **kwargs)#继承父类的初始法
for filed in self.fields.values():#给每一个插件
filed.widget.attrs.update({'class': 'form-control'}) #update是更新attrs插件字典的css样式

(5).开始使用form表单:先在views.py中导入它,并实例化对象再传给前端模版,前端模版中再渲染form即可

views.py中:

#增加客户
def add_customer(request):
#实例化一个空的form对象
form_obj = CustomerForm
return render(request,'crm/add_customer.html',{"form_obj":form_obj})

(6).add_customer.html中:将customer_list.html中面板拷贝到add_customer.html中并做个性修改:

{% extends 'layout.html' %}
{% block content %}


添加客户






{% csrf_token %}
{% for field in form_obj %}





{{ field }}

{{ field.errors.0 }}



{% endfor %}











{% endblock %}

效果如下:显示就做完了!

六.1--客户展示之新增客户功能_第2张图片

 

 六.1--客户展示之新增客户功能_第3张图片

 

 2.那怎么提交?--开始写提交逻辑

(1).views.py中:

# 增加客户
def add_customer(request):
# 实例化一个空的form对象
form_obj = CustomerForm()
if request.method == 'POST':#提交逻辑判断
# 实例化一个带提交数据的form对象
form_obj = CustomerForm(request.POST)
# 对提交数据进行校验
if form_obj.is_valid():#校验成功则
# 去数据库创建对象
form_obj.save() #提交成功后
return redirect(reverse('customer'))#再跳转到customer客户列表页面

return render(request, 'crm/add_customer.html', {"form_obj": form_obj})

(2)开始测试在增加客户页面添加客户并提交:

六.1--客户展示之新增客户功能_第4张图片

 

 

点击提交按钮后,效果如下,提交成功了:

六.1--客户展示之新增客户功能_第5张图片

3.在展示页面把添加客户按钮显示下:

customer_list.html中:如下加一个a标签,并加button按钮,一点添加就能跳到add_customer页面了。

添加 {# url反向解析 #}

六.1--客户展示之新增客户功能_第6张图片

 

 

效果如下图:

六.1--客户展示之新增客户功能_第7张图片

你可能感兴趣的:(六.1--客户展示之新增客户功能)