【发布时间】:2019-04-30 08:58:48
【问题描述】:
我的 PostGreSQL 数据库中有下表:
workspace_role_id | workspace_role_name
--------------------------------------+---------------------
3f76103f-732a-435a-a88f-737f4a6f1b87 | Owner
c73b7c35-237e-4e13-8269-b259c2858b71 | Admin
a61890fc-1c29-4817-8687-30786a5db17a | User
从这个 Django 模型构建:
class WorkspaceRole(models.Model):
class Meta:
ordering = ("workspace_role_name",)
workspace_role_id = models.UUIDField(primary_key=True, default=uuid.uuid4, blank=True, editable=False)
workspace_role_name = models.CharField(max_length=64, unique=True)
def __repr__(self):
return f"<{self.__class__.__name__}: {self.workspace_role_name}>"
我想从 ID 中检索 workspace_role_name。
然而,
的结果WorkspaceRole.objects.filter(workspace_role_id="a61890fc-1c29-4817-8687-30786a5db17a")
是一个空查询集<QuerySet []>,但是当我运行时
WorkspaceRole.objects.all()
我得到正确的输出:<QuerySet [<WorkspaceRole: Admin>, <WorkspaceRole: Owner>, <WorkspaceRole: User>]>
我的过滤器做错了什么?
【问题讨论】:
-
如果解决了您的问题,请将答案标记为正确。
-
@LuSchink 我会,但它没有,正如我在回复中澄清的那样
-
print(repr(WorkspaceRole.objects.filter(workspace_role_name='User')[0].workspace_role_id))的输出是什么? -
@EndreBoth 当我运行这个时我得到
UUID('a61890fc-1c29-4817-8687-30786a5db17a') -
而
WorkspaceRole.objects.filter(workspace_role_id=WorkspaceRole.objects.filter(workspace_role_name='User')[0].workspace_role_id)仍然返回一个空查询集?
标签: python django postgresql django-queryset