前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django学习_简易博客(三)

Django学习_简易博客(三)

作者头像
zx钟
发布2019-07-18 21:50:42
3840
发布2019-07-18 21:50:42
举报
文章被收录于专栏:测试游记

创建对象

代码语言:javascript
复制
$ python manage.py shell
>>> from django.contrib.auth.models import User
>>> from blog.models import Post
>>> user = User.objects.get(username='admin')
>>> post = Post(title='Another post',
...             slug='anotjer-post',
...             body='Post bodu.',
...             author=user)
>>> post.save()

user = User.objects.get(username='admin') 通过用户名admin获取到user对象

创建

更新对象

代码语言:javascript
复制
>>> post.title = 'New title'
>>> post.save()

更新对象

获取对象

代码语言:javascript
复制
>>> all_posts = Post.objects.all()
>>> Post.objects.all()
<QuerySet [<Post: New title>, <Post: zx>]>

使用filter()方法

代码语言:javascript
复制
>>> Post.objects.filter(publish__year=2019)
<QuerySet [<Post: New title>, <Post: zx>]>
>>> Post.objects.filter(publish__year=2019,author__username='admin')
<QuerySet [<Post: New title>, <Post: zx>]>
>>> Post.objects.filter(publish__year=2019) \
            .filter(author__username='admin')
<QuerySet [<Post: New title>, <Post: zx>]>

包含字段查找方法的查询操作可以采用两个下划线予以构建

使用exclude()方法

排除特定的结果

代码语言:javascript
复制
>>> Post.objects.filter(publish__year=2019) \
        .exclude(title__startswith='zx')

使用order_by()

代码语言:javascript
复制
>>> Post.objects.order_by('title')
<QuerySet [<Post: New title>, <Post: zx>]>
>>> Post.objects.order_by('-title')
<QuerySet [<Post: zx>, <Post: New title>]>

默认升序,通过负号前缀降序排序

删除对象

代码语言:javascript
复制
>>> post = Post.objects.get(id=1)
>>> post.delete()
(1, {'blog.Post': 1})

创建模型管理器

代码语言:javascript
复制
class PublishedManager(models.Manager):
    def get_queryset(self):
        return super(PublishedManager, self) \
            .get_queryset() \
            .filter(status='published')


class Post(models.Model):
    object = models.Manager()
    published = PublishedManager()
    ...

使用

代码语言:javascript
复制
>>> Post.published.filter(title__startswith='zx')
<QuerySet []>
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试游记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建对象
  • 更新对象
  • 获取对象
    • 使用filter()方法
      • 使用exclude()方法
        • 使用order_by()
        • 删除对象
        • 创建模型管理器
          • 使用
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档