Python和Django的新手问题,这里是代码:检查对象,从基类的收集获得,是子类的对象在Django
class Client(User)
#some fields
client=Client()
client.save()
user=User.objects.all()[0]
#want to ckeck type of user, expect that it is Client:
isinstance(user,Client) #returns false
#but this works:
isinstance(user,User) #returns true
但我想到的是用户客户端。怎么了?
增加: 需先子类对象,并能正常工作:
if hasattr(user,'client'):
client=user.client
加2:家伙,你这么生气,所以我不敢张贴任何更多的在这个问题:)它是封闭的,我完全理解我对django,python,polymorphism和其他IT技术的知识绝对真空,谢谢))
你做错了。 Django有一个“组”模型,可以让你区分不同类型的用户。不要像这样继承Django的'User'类。阅读这样的问题:http://stackoverflow.com/questions/4789021/in-django-how-do-i-check-if-a-user-is-in-a-certain-group。这是正确的方法。删除所有尝试子类User的代码。关闭这个问题。并正确使用“Group”重新开始。 – 2012-02-09 10:49:15
为什么不要子类用户? Django允许:https://docs.djangoproject.com/en/dev/topics/db/models/#model-inheritance。我需要扩展用户自定义字段,所以没有什么是与子类绑定。 – 2012-02-09 11:30:11
但用于区分的组看起来很好,我使用它,谢谢 – 2012-02-09 11:33:40