python - django 中 pk=request.user 和 pk=request.user.id 的相同结果

标签 python django

class MyUser(User):
    job = ...
    city = ....

MyUser.objects.get(pk=request.user)MyUser.objects.get(pk=request.user.id) 给我相同的结果。来自 doc , pk 必须是一个整数。但是 request.user 是一个对象。为什么对象和用户 ID 的查询相同?

编辑:我知道 request.user 是对象,但我想知道为什么结果相同。

提前致谢

最佳答案

这是设计使然 - 如果您将模型对象作为参数传递给查询,则与传递其主键相同。

如果这不是行为,则要么需要传递 pk,要么会出现错误,这只会让人讨厌。

感谢 rebus 对来源的引用:https://code.djangoproject.com/browser/django/trunk/django/db/models/fields/related.py#L175

关于python - django 中 pk=request.user 和 pk=request.user.id 的相同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8804193/

相关文章:

python - Unicode 转义不适用于某些字符

python - Python中List的底层结构

javascript - Django 开发服务器上的 Ajax 和 JQuery

Django Admin - 预填充字段并设置为只读

Django 模型形式 : How to override or check for "save_as"

python - 如何在图像菜单项中使用自定义图标?

python - Django:TemplateDoesNotExist at/login/(源不存在)

python - 无法从 NLTK 库中导入双字母组

python - Django:从 `Q` 中提取 `QuerySet` 对象

python - 从 Python 使用 Spark 所需的库 (PySpark)