我有以下代码:
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)。
问题可能是什么以及如何避免?
您当前的 url kwarg 值为“dean88”,因为您向其传递了 post.author 的字符串表示形式,即用户名。 请改用“/profile/showprofile/{{post.author.pk}}”来传递实际的用户 ID。
def str(自身): #返回自己的名字 返回 '{}- {}'.format(self.pk, self.name)
>>> from django.contrib.auth.models import User
>>> user = User.objects.filter(username='paolocooper12').first()
>>> print(user)
>>> print(user.id)
这就是你在 python manage.py shell 中的做法