如何从django中的User模型获取id

时间:2015-09-24 20:26:15

标签: python django python-2.7 django-models django-forms

我有以下代码:

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

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

运行表单并单击带有上述URL的链接。我收到一个错误,说明基于10“dean88”的int的无效文字。

但是当我去python shell并给出:user = User.objects.get(username ='dean88')时,我仍然会得到同样的错误。只有当我输入用户的id为整数时才会出错。比如,user = User.objects.get(username = 2)。

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

2 个答案:

答案 0 :(得分:4)

您目前正在接受#34; dean88"您的url kwarg的值,因为您正在传递post.author的字符串表示形式,即用户名。 使用" / profile / showprofile / {{post.author.pk}}"相反,要传递实际的用户ID。

答案 1 :(得分:-1)

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

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