排序查询,模糊查询

排序查询,模糊查询

排序查询

根据歌手名下的歌曲数量,对歌手进行降序排序

创建两个模型

# 创建歌手模型
class Songer(models.Model):
    name = models.CharField(max_length=50)
    sex = models.CharField(max_length=20)
    img = models.ImageField(upload_to='static')

# 创建歌曲模型
class Sing(models.Model):
    name = models.CharField(max_length=40)
    # related_name='sings':因为歌手没有外键,所以无法通过歌手找到歌曲,就需要设置一个方法,
    # 使用通过歌手模型能够找到歌曲模型
    songer = models.ForeignKey(Songer,on_delete=models.CASCADE,related_name='sings')
    time = models.DateTimeField(auto_now_add=True)

排序查询

def get(self,request):
    # 查询所有歌手,并按照其歌曲降序排序,annotate:注解
    songer_li = Songer.objects.annotate(sings_num = Count('sings')).order_by('-sings_num').values()
    return Response(songer_li)

模糊查询

def get(self,request):
    # 接收前端传来的查询关键字
    word = request.GET.get('word')
    # 利用关键字对歌手模糊查询    __contains:查询某个字符
    songer_li = Songer.objects.filter(name__contains=word).values()
    # 利用关键字对歌曲模糊查询
    sing_li = Sing.objects.filter(name__contains=word).values()
    # 返回满足条件的数据
    return Response({'songer_li':songer_li,'sing_li':sing_li})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值