我的一些用户是学生。当用户创建学生配置文件时,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将使用当前模型的小写名称作为默认值。

09-20 12:55