我有以下代码:
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)。
可能是什么问题以及如何避免它?
答案 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 中的做法