美文网首页
model增删改查

model增删改查

作者: 黑夜的眸 | 来源:发表于2018-05-07 21:46 被阅读0次

    查model

    最常使用all(), get(), filter()exclude()

    filter()返回一个Queryset集合,即使只有一个对象满足匹配条件,也返回一个包含该对象的集合
    get()返回单个对象
    exclude()返回满足条件对象以外的集合


    order_by()排序


    exact

    Entry.objects.get(headline__exact="Cat bites dog") #显示表达
    Entry.objects.get(headline="Cat bites dog")        #隐式表达
    

    iexact不区分大小写

    Blog.objects.get(name__iexact="beatles blog")
    

    匹配"Beatles Blog", "beatles blog", 或者"BeAtlES blOG".


    contains包含即可

    Entry.objects.get(headline__contains='Lennon')
    

    可以匹配'Today Lennon honored',但不可匹配'today lennon honored'
    icontains不区分大小写


    具有标题为'Lennon'且发布时间为2008年条目的博客

    Blog.objects.filter(entry__headline__contains='Lennon', entry__pub_date__year=2008)
    

    具有标题为'Lennon'条目且具有发布时间为2008年条目的博客

    Blog.objects.filter(entry__headline__contains='Lennon').filter(entry__pub_date__year=2008)
    

    前者条件更为苛刻


    n 数量
    gt greater than 大于
    lt less than小于
    F() 允许同一model的两个不同域间进行比较,如下:

    from django.db.models import F
    Entry.objects.filter(n_comments__gt=F('n_pingbacks'))
    

    in 在...之类

    Blog.objects.filter(pk__in=[1,4,7])
    

    Q

    允许使用|(或运算符)和 &(与运算符)
    from django.db.models import Q
    Polls.objects.get(
        Q(question__startswith='Who'),
        Q(pub_date=date(2005, 5, 2)) | Q(pub_date=date(2005, 5, 6))
    )
    

    增model

    model实例化

    >>> from blog.models import Blog
    >>> b = Blog(name='Beatles Blog', tagline='All the latest Beatles news.')
    >>> b.save()
    

    删model

    delete()函数

    Entry.objects.filter(pub_date__year=2005).delete()
    

    改model

    update()函数

    # Update all the headlines with pub_date in 2007.
    Entry.objects.filter(pub_date__year=2007).update(headline='Everything is the same')
    

    其它函数:

    
    add(obj1, obj2, ...)
    #将特定的模型对象加入关联对象集合。
    create(**kwargs)
    #Creates a new object, saves it and puts it in the related object set.
    #Returns the newly created object.
    remove(obj1, obj2, ...)
    #Removes the specified model objects from the related object set.
    clear()
    #Removes all objects from the related object set.
    set(objs)
    #Replace the set of related objects.
    

    相关文章

      网友评论

          本文标题:model增删改查

          本文链接:https://www.haomeiwen.com/subject/fztbrftx.html