zoukankan      html  css  js  c++  java
  • django 神奇的双下划线,通过外键的三种查询方式

    一,用于跨表操作

      只要是object后面字符串都是用双下划线__。其它地方用点.

    如:的values中的group_code__name.group_code是一个外键

    def list(request):
        host = models.host.objects.filter(id__gt=3).values('ip','port','group_code_id','group_code__name')
        for i in host:
            print(i['group_code__name'],i['group_code_id'])
        return render(request,'list.html',{'host':host,})  
    

    二,3种外键查询

    veiws:
    def list(request):
        v1 = models.host.objects.filter(id__gt=3)
        for i in v1:
            print(i.ip,i.port,i.group_code_id,i.group_code.name)
        v2 = models.host.objects.filter(id__gt=3).values('ip','port','group_code_id','group_code__name')
        for i in v2:
            print(i['ip'],i['port'],i['group_code__name'],i['group_code_id'])
        v3 = models.host.objects.filter(id__gt=3).values_list('ip','port','group_code_id','group_code__name')
        for i in v3:
            print(i[0],i[1],i[2],i[3])
        return render(request,'list.html',{'v1':v1,'v2':v2,'v3':v3})
    
    html:
    <h1>对象获取:</h1>
    <table border="1">
            <thead><td>ip</td><td>port</td><td>group_id</td><td>group_name</td></thead>
        {% for i in v1 %}
            <tr><td>{{ i.ip}}</td><td>{{ i.port}}</td><td>{{ i.group_code_id}}</td><td>{{ i.group_code.name}}</td></tr>
        {% endfor %}
    </table>
    <h1>字典获取:</h1>
    <table border="1">
            <thead><td>ip</td><td>port</td><td>group_id</td><td>group_name</td></thead>
        {% for i in v2 %}
            <tr><td>{{ i.ip}}</td><td>{{ i.port}}</td><td>{{ i.group_code_id}}</td><td>{{ i.group_code__name}}</td></tr>
        {% endfor %}
    </table>
    <h1>元组获取:</h1>
    <table border="1">
            <thead><td>ip</td><td>port</td><td>group_id</td><td>group_name</td></thead>
        {% for i in v3 %}
            <tr><td>{{ i.0}}</td><td>{{ i.1}}</td><td>{{ i.2}}</td><td>{{ i.3}}</td></tr>
        {% endfor %}
    </table>
    

      

    。。

  • 相关阅读:
    latex在vim中的代码片段
    latex设置不同中英文字体
    React 路由基本配置
    React网络请求
    React生命周期函数
    React父子传值中propTypes defaultProps
    React父子组件传值
    React todolist案例和持久化实现
    React表单
    react事件对象 、键盘事件、 表单事件 、ref获取dom节点、React实现类似vue双向数据绑定
  • 原文地址:https://www.cnblogs.com/alex-hrg/p/9869976.html
Copyright © 2011-2022 走看看