【问题标题】:Is there to refer to a user without stating user.pk in a filter queryset?是否有在过滤器查询集中没有说明 user.pk 的情况下引用用户?
【发布时间】:2012-04-12 22:43:23
【问题描述】:

例如,我想获取Users 的列表。我当前的查询集看起来像这样

creator_list = User.objects.filter(
    Q(userprofile__place__managers=user) |
    Q(pk=user.pk)
)

我发现使用...managers=user.pk 可以得到相同的结果

creator_list = User.objects.filter(
    Q(userprofile__place__managers=user.pk) |
    Q(pk=user.pk)
)

我以前一直写...=user.pk,直到我意识到我可以简单地删除pk 部分。那么在第二个Q() 子句中,是否也可以删除pk 部分?因此我想让它看起来像

creator_list = User.objects.filter(
    Q(userprofile__place__managers=user) |
    Q(something=user)
)

我知道pk接受了模型的主键,这是一个整数,但是当我已经知道我想要通过User模型进行过滤时为什么还要指定它。

【问题讨论】:

    标签: python django django-queryset


    【解决方案1】:

    很遗憾,没有。字段查找需要字段,因此必须使用 PK,因为无法专门引用模型指示的行。

    【讨论】:

      猜你喜欢
      • 2021-06-30
      • 1970-01-01
      • 2015-02-16
      • 2021-03-20
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多