码迷,mamicode.com
首页 > 其他好文 > 详细

django(四)

时间:2016-09-24 07:04:18      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:

一、数据调用下拉菜单内容

 

viwes.py

from django.shortcuts import render,HttpResponse,render_to_response


from django import forms
from app01 import models
class IndexForm(forms.Form):
    # c = [
    #     (1,‘CEO‘),
    #     (2,‘COO‘)
    # ]
    c = models.UserType.objects.all().values_list(id,caption)
    user_type_id = forms.IntegerField(widget=forms.Select(choices=c))

    def __init__(self,*args, **kwargs):                                         #这段目的添加完用户类型,网页立即显示
        # 父类构造方法:1、获取所有静态字段   2、fields = []
        super(IndexForm, self).__init__(*args, **kwargs)

        # print(self.fields[‘user_type_id‘].widget.choices)
        self.fields[user_type_id].widget.choices = models.UserType.objects.all().values_list(id,caption)

def index(request):
    # for i in range(10):                                              #添加表数据
    #     models.UserType.objects.create(caption=‘CE‘+str(i))              
    # c = models.UserType.objects.all().count()
    # print(c)
    form = IndexForm()
    return render(request, index.html, {form: form})

def add_user_type(request):                         #get http://127.0.0.1:8000/add_user_type?q=CVO   方式可以添加用户类型CVO
    q = request.GET.get(q, None)
    if q:
        models.UserType.objects.create(caption=q)
    return HttpResponse(q)

 

model.py

from django.db import models

# Create your models here.

class UserType(models.Model):
    caption = models.CharField(max_length=16)

显示效果

 

 

技术分享

 

二、

model操作 F/Q
F:
temp = salary+500
models.UserInfo.objects.filter().update(salary=temp)
update userinfo set salary=salary+500

from django.db.models import F
models.UserInfo.objects.filter().update(salary=F(‘salary‘)+500)

Q:
构造搜索条件
1、传参
models.UserInfo.objects.filter(id=123,name=‘alex‘)

2、传字典
d = {‘id‘: 123, ‘name‘:‘alex‘}
models.UserInfo.objects.filter(**d)

<input name=‘id‘ />
<input name=‘name‘ />
获取用户输入,并构造成字典:
models.UserInfo.objects.filter(**c)
3、传Q对象
models.UserInfo.objects.filter(Q对象)

viwes.py

def index(request):

    form = IndexForm()
    from django.db.models import Q
    """
    q1 = Q()
    q1.connector = ‘OR‘
    q1.children.append((‘id‘, 1))
    q1.children.append((‘id‘, 2))
    q1.children.append((‘id‘, 3))
    # 1 CE0
    # 2 CE1
    # 3 CE2

    obj = models.UserType.objects.filter(q1)
    for item in obj:
        print(item.id,item.caption)
    """
    con = Q()

    q1 = Q()
    q1.connector = OR
    q1.children.append((id, 1))
    q1.children.append((id, 2))
    q1.children.append((id, 3))

    q2 = Q()
    q2.connector = OR
    q2.children.append((caption, CE1))
    q2.children.append((caption, CE2))

    con.add(q1, AND)
    con.add(q2, AND)

    obj = models.UserType.objects.filter(con)
    for item in obj:
        print(item.id,item.caption)

    return render(request, index.html, {form: form})
    # 2 CE1
    # 3 CE2

 

 

三、中间件

django(四)

标签:

原文地址:http://www.cnblogs.com/wudalang/p/5880768.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!