1.#169-Download-for-JLL
下载功能的函数实现碰到的问题 ,在数据库里面没有对应的property_NameUnicode这个一个列,NameUnicode和id 是不一样的,在数据库层面的确有一个叫做id的列,但是NameUnicode是不存在的,现在实现了id 的正确跳转了,NameUnicode等leon的答复
2.col-sm 等前端div设置的理解
.col-xs-超小屏幕 手机 (<768px),.
col-sm-小屏幕 平板 (≥768px),
.col-md-中等屏幕 桌面显示器 (≥992px)(栅格参数).
不管在哪种屏幕上,栅格系统都会自动的分12列 col-xs-和col-sm- 和col-md-*后面跟的参数表示在当前的屏幕中 div占的宽度。
例如
如果是这样 这两个div在小屏幕中会排2排 因为10+3>12 ,在中等屏幕中可以排同一排 8+4=12
3.ui 前端 展现 通过层级关系,绕过id 和class 的 方式找到对应的 ul li 的标签,然后通过重写css 方式的重写
.actions > ul > li {
margin-top:5px !important;
}
4.了解Echart的图形展现和爬虫功能的方式
@login_required()
#每一个require 都会被判定有没有login,所有的用用户可以交互的function 都是需要加的
def view_company_contact(request,company_id):
#request是必要的方式,post的方式传递更加保险
company_id = company_id#必须需要company_id才可以
company_instance = get_object_or_404(Company,pk=int(company_id))
#通过对应的方式,一共有三种方式
#1.找到单一对象,!!如果是多个对象的时候,使用get_object_or_404 ,leon通常的风格会使用instance
#2.company_contact.objects.all()
#3.company_contact.object.filter(Q()|Q(__contains=))
company_contacts = Company_Contact.objects.filter(company=company_instance)
message_for_add_result = "null"
render_to_response('',{},context())
返回的形式有两种,第一种render_to_response('template',{变量},context_instance=context())
,返回以后的参数都是可以直接在html使用,context()在里面是一些非常重要的信息返回回去,里面还包含了全局变量
HttpResponseRedict() 两种方式
跳转的精简版!!! 需要改变
btn-danger,btn-info,btn-Edit,btn-default, 前端样式的button的样式
data-toggle表示加号的位置
data-hide 表示收缩
data-hide=”phone” 手机分辨路
var e = document.getElementById("company_to_add");
var strUser = e.options[e.selectedIndex].value;
var url = "/brand/view_detail/{{ brand_instance.id }}/?item=add_company&company_id="+strUser
window.location.href=url;
#跳转的位置
};
传递值的闭合!brand_id !!需要找到最原始的id 然后再传回去!
添加一个 contact_form
class Company_contact_form(ModelForm):
class Meta:
model = Company_Contact
fields = form_setting.form_sets.company_contact_form
company_contact_form_required = form_setting.form_sets.company_contact_form_required
widgets = {}
def __init__(self, *args, **kwargs):
super(Company_contact_form, self).__init__(*args, **kwargs)
for key in self.fields:
self.fields[key].error_messages=my_default_errors
company_contact_form_required = getattr(self.Meta, 'company_contact_form_required', None)
if company_contact_form_required:
for key in self.fields:
if key not in company_contact_form_required:
self.fields[key].required = False
elif company_contact_form_required == []:
for key in self.fields:
self.fields[key].required = False
import form 后开始写view,
add的逻辑处理方式,首先初始化一个form是一个空的, 直接返回的是message_for_add_result = “null”,给user一个输入界面,让你填写的!
返回一个是 form的方式
第二步,用户填写好了以后,拿到post的方式拿到,form 有一个id ,还有一个是method = post 两个都是必须的,后面是固定写法,表示加密方式,
在form-action 的div 里面有一个type = submit 的input 的就会自动地提交到后台上面,非常智能!和语言的写法没有关系