我的一些用户是学生。当用户创建学生档案时,实例化StudentProfile类:
class StudentProfile(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL, primary_key=True)
…
如何检查用户是否是学生?
hasattr(request.user, 'StudentProfile')
即使登录用户具有关联的StudentProfile,也会返回False。
答案 0 :(得分:4)
你几乎就在那里 - 你只需要使用小写studentprofile
而不是StudentProfile
:
hasattr(request.user, 'studentprofile')
来自the docs:
如果没有为
related_name
指定OneToOneField
参数,Django将使用当前模型的小写名称作为默认值。