我的一些用户是学生。当用户创建学生配置文件时,student profile类将被实例化:
class StudentProfile(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL, primary_key=True)
…
如何检查用户是否是学生?
hasattr(request.user, 'StudentProfile')
即使登录用户有关联的StudentProfile,也返回False。
最佳答案
你就快到了-你只需要使用小写studentprofile
而不是StudentProfile
:
hasattr(request.user, 'studentprofile')
从the docs:
如果没有为
related_name
指定OneToOneField
参数,Django将使用当前模型的小写名称作为默认值。