【问题标题】:how to pull data from many to many relationship table in django orm如何从django orm中的多对多关系表中提取数据
【发布时间】:2012-05-02 03:23:32
【问题描述】:

我正在尝试通过将 auth_user (主表)与 auth_user_user_permissions(manyTomany ) 加入来列出所有权限 ID。我试过关注

PER = sorted((item.permission_id) for item in list(User.objects.filter(user_permissions__user=2)))

这是说'用户'对象没有属性'permission_id。

请指导我

【问题讨论】:

    标签: python django orm many-to-many


    【解决方案1】:

    User.objects.filter(...) 为用户获取查询集。因此 item 是一个 User() 实例。要访问该项目的权限,请直接item.user_permissions.all()。因此在你的情况下

    User(pk=2).user_permissions.values_list('pk', flat=True).order_by('pk')
    # or
    [x.pk for x in Permission.objects.filter(user=2).order_by('pk')]
    

    更多信息请参考the doc

    【讨论】:

      【解决方案2】:

      如果您需要权限 ID,则需要直接查询权限表。

      permission_ids = Permission.objects.filter(user=2).values_list('id', flat=True)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-18
        • 2017-07-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-16
        相关资源
        最近更新 更多