zoukankan      html  css  js  c++  java
  • Title

    一、FK关联

    FK关联
        url.py里
            from app01 import views
            urlpatterns = [
                url(r'^admin/', admin.site.urls),
                url(r'^index.html$', views.index),
            ]
    
        views.py里
            from django.shortcuts import render,HttpResponse
            from app01 import models
            def index(request):
                zgl = models.UserInfo.objects.filter(username='zgl',gender=1).first()  # 拿到要查询的对象
    
                result = zgl.girls.all()  # 去U2U里拿到所有的b_id
                for u in result:
                    print(u.g.nickname)   # 拿到b_id所对应的.g的女孩的nickname
    
                return HttpResponse('successfully done')
                
        models.py里
            from django.db import models
    
            class UserInfo(models.Model):
                nickname = models.CharField(max_length=16)
                username = models.CharField(max_length=16)
                passwd = models.CharField(max_length=64)
                gender_choice = (
                    (1,''),
                    (2,''),
                )
                gender= models.IntegerField(choices=gender_choice)
                
            # 反向查询时
            # related_query_name
            # obj对象男.U2U.girls_set.all()
            # obj对象女.U2U.boys_set.all()
            # related_name
            # obj对象男.girls.all()
            # obj对象女.boys.all()
    
            class U2U(models.Model):
                g = models.ForeignKey('UserInfo',related_name='boys')
                b = models.ForeignKey('UserInfo',related_name='girls')
    
    
            
        M2M自关联特性:
            models.py里
                from django.db import models
    
                class UserInfo(models.Model):
                    nickname = models.CharField(max_length=16)
                    username = models.CharField(max_length=16)
                    passwd = models.CharField(max_length=64)
                    gender_choice = (
                        (1,''),
                        (2,''),
                    )
                    gender= models.IntegerField(choices=gender_choice)
                    m = models.ManyToManyField('UserInfo')  # 自己关联自己
                    
            views.py里
                def index(request):
                    #查女生
                    girl = models.UserInfo.objects.filter(id=4,gender=2).first()  # 拿到要查询的对象
                    result = girl.userinfo_set.all() 
                    for row in result:
                        print(row.nickname)
    
                    return HttpResponse('successfully done')
            
            obj = models.UserInfo.objects.filter(id=1).first()
            # 对于from_userinfo_id 相当于正向查询通过.m的方式
            obj.m          => select xx from xx where from_userinfo_id = 1
            
            # 对于to_userinfo_id  相当于反向查询通过.userinfo_set的方式
            obj.userinfo_set => select xx from xx where to_userinfo_id = 1
            
        
        定义:
            # 前面列:男生ID
            # 后面列:女生ID
            
        应用:
            # 男生对象
            obj = models.UserInfo.objects.filter(id=1).first()
            # 根据男生ID=1查找关联的所有的女神
            obj.m.all()
            
            # 女生
            obj = models.UserInfo.objects.filter(id=4).first()
            # 根据女生ID=4查找关联的所有的男生
            obj.userinfo_set.all()
        问题:
        当打不开页面,发生404错误时
            url(r'^index.html$/', love.index) # index.html$后边不要加反斜杠
    View Code
  • 相关阅读:
    dockerfile 镜像 指定虚拟机的内存
    springBoot整合MongoDB(动态查询)
    ubuntu 使用sudo apt-get update命令的时候会报http://archive.ubuntukylin.com:10006/ubuntukylin/dists/xenial/InRelease 无法连接
    在Ubuntu下进行MongoDB安装步骤
    艺术和代码的结合 turtle + python 的结合
    MySQL CPU性能定位
    送书丨《架构解密:从分布式到微服务》
    区块链在天猫国际商品溯源中的应用
    nginx gzip
    别被忽悠了!阿里内部人士:我们正悄悄地拆掉中台,你还在建?
  • 原文地址:https://www.cnblogs.com/guotianbao/p/7501697.html
Copyright © 2011-2022 走看看