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>
    

      

    。。

  • 相关阅读:
    C# richTextBox封装的一个打印的类
    RichtextBox打印
    RichTextBox选中文本时往自己的其他的位置实现拖拽
    C# 保存和读取TreeView展开的状态
    RichtextBox去除闪烁光标
    自己重启自己
    记录一次shell里局部变量的问题
    Redis配置总结
    Nginx原理和配置总结
    CentOS7+Nginx+多个Tomcat配置
  • 原文地址:https://www.cnblogs.com/alex-hrg/p/9869976.html
Copyright © 2011-2022 走看看