如何从django中的用户模型获取id

问题描述 投票:0回答:3

我有以下代码:

user=User.objects.get(username=uid)

我通过 url“/profile/showprofile/{{post.author}}”传递 uid 值。我的 post.author 包含值为“dean88”。

运行表单并单击具有上述 URL 的链接。我收到一条错误消息,指出 以 10 为基数的 int 的文字无效“dean88”

但是当我进入 python shell 并给出: user=User.objects.get(username='dean88') 我仍然遇到相同的错误。仅当我输入用户 ID 作为整数时,才会出现错误。例如,user=User.objects.get(username=2)。

问题可能是什么以及如何避免?

python django python-2.7 django-models django-forms
3个回答
4
投票

您当前的 url kwarg 值为“dean88”,因为您向其传递了 post.author 的字符串表示形式,即用户名。 请改用“/profile/showprofile/{{post.author.pk}}”来传递实际的用户 ID。


0
投票

def str(自身): #返回自己的名字 返回 '{}- {}'.format(self.pk, self.name)


-1
投票
>>> from django.contrib.auth.models import User
>>> user = User.objects.filter(username='paolocooper12').first()
>>> print(user)
>>> print(user.id)

这就是你在 python manage.py shell 中的做法

© www.soinside.com 2019 - 2024. All rights reserved.