Django orm的正向反向操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django orm的正向反向操作相关的知识,希望对你有一定的参考价值。

数据表的正反向操作

通过values 和values_list来操作的

数据表代码

class Utype(models.Model):
    title = models.CharField(max_length=32)
    # ucap = models.ForeignKey(‘Ubumen‘)

class Uinfo(models.Model):
    name = models.CharField(max_length=32)
    age = models.IntegerField()
    ut = models.ForeignKey(‘Utype‘)

url配置

    url(r‘^test.html/‘, views.test),

views函数中的test函数

    #
    #正向查询
    # ZX_result = models.Uinfo.objects.all().first()
    # models.Uinfo.objects.filter(id__gt=6).delete()
    # ZX_result = models.Uinfo.objects.values(‘name‘,‘ut_id‘) #显示结果为6个,因为Uinfo里面就有6个,这个和left join一样,谁在前面以谁为准
    # ZX_result = models.Uinfo.objects.values(‘name‘,‘ut__id‘,‘ut__title‘) #跨表查询
    #ZX_result = models.Uinfo.objects.values_list(‘name‘,‘ut__title‘)# 元祖显示
    #print(ZX_result)

    #反向查找
    # FX_result=models.Utype.objects.all().first()#通过print(FX_result.id)来看结果
    # FX_lianbiao = FX_result.uinfo_set.all() #通过数据表小写+单下划线+set来达到反向查找
    # print(FX_lianbiao[0].id)

    FX_result = models.Utype.objects.values_list(‘id‘,‘title‘,‘uinfo__age‘) #反向通过表明小写+双下划线 来去跨表的值
    print(FX_result)
    return HttpResponse(‘.....‘)

其他操作

技术分享图片
技术分享图片

以上是关于Django orm的正向反向操作的主要内容,如果未能解决你的问题,请参考以下文章

八Django的orm之多表操作

数据库表反向生成django ORM inspectdb

数据库表反向生成 Django ORM inspectdb

django中orm之什么是正向查询什么是反向查询

Django 补充ORM多对多正向查询

Django-ORM 多对多基本操做!