制作了扩展用户的视图:
class Client(models.Model):
user = models.OneToOneField(User, related_name='user')
def __unicode__(self):
return "%s" % (self.user)
我目前正在尝试通过访问Client对象来访问User模型。目前我在python shell中收到错误:
ValueError: invalid literal for int() with base 10:
我知道它与访问OneToOneField有关,但我不知道为什么。在我的案例中,我发现的所有解决方案都是从用户模型的角度而不是扩展客户端。
让它变得更清晰。每当我访问用户时。
>>> client1 = User.objects.get(username="client1")
>>> client1.user
>>> client1.user.attribute
它回显了扩展模型的属性,在本例中是Client属性。我怎样才能实现这一目标。所以通过客户端模型而不是用户模型。
答案 0 :(得分:3)
我认为您需要传递用户对象而不是字符串。
client1 = User.objects.get(username="client_1") # this is the user object
client_obj = Client.objects.get(user=client1) # pass object NOT STRING
你也可以这样做:(假设给出了用户的id)
client1 = Client_objects.get(user__id=1) # pass the user's id instead
我希望它有效;)