在 Django 中可以用 request.user 调用哪些字段?
What fields can you call with request.user in Django?
抱歉这个愚蠢的问题,但我想不通。
我有一个基于 class 的表单视图。如果 request.user
等于某物,我想做一些改变。
我之前在其他一些视图中使用过 request.user.profile.leader
,它给了我一个布尔值答案。没关系。
现在,在这个基于 class 的视图中,我喜欢使用非常相似的东西,但使用另一个类似这样的模型:request.user.trust.group
但它什么也没给我。我做错了什么?
如果您还没有自定义您的用户模型,那么 profile
将作为另一个模型 (by way of related_name
having been set or inferred) 上的 one-to-one 字段的反向描述符出现在它上面,即您有类似的东西
class Profile(Model):
user = models.OneToOneField(User, related_name="profile")
leader = models.BooleanField(...)
某处。
如果您希望有一个 trust
字段,那么您需要类似的东西:
class Trust(Model):
user = models.OneToOneField(User, related_name="trust")
group = ...
另一方面,如果您确实有 entirely custom user model,那么这些属性可以直接出现在上面:
class CustomUser(AbstractBaseUser):
profile = models.ForeignKey(Profile, ...)
trust = models.ForeignKey(Trust, ...)
抱歉这个愚蠢的问题,但我想不通。
我有一个基于 class 的表单视图。如果 request.user
等于某物,我想做一些改变。
我之前在其他一些视图中使用过 request.user.profile.leader
,它给了我一个布尔值答案。没关系。
现在,在这个基于 class 的视图中,我喜欢使用非常相似的东西,但使用另一个类似这样的模型:request.user.trust.group
但它什么也没给我。我做错了什么?
如果您还没有自定义您的用户模型,那么 profile
将作为另一个模型 (by way of related_name
having been set or inferred) 上的 one-to-one 字段的反向描述符出现在它上面,即您有类似的东西
class Profile(Model):
user = models.OneToOneField(User, related_name="profile")
leader = models.BooleanField(...)
某处。
如果您希望有一个 trust
字段,那么您需要类似的东西:
class Trust(Model):
user = models.OneToOneField(User, related_name="trust")
group = ...
另一方面,如果您确实有 entirely custom user model,那么这些属性可以直接出现在上面:
class CustomUser(AbstractBaseUser):
profile = models.ForeignKey(Profile, ...)
trust = models.ForeignKey(Trust, ...)