我有一个模型
class Doctor(models.Model):
user = models.OneToOneField(
User,
on_delete=models.CASCADE,
primary_key=True,
related_name="user")
# other fields...
在我的template
中,我可以很容易地访问医生对象作为request.user.doctor
,但在我的views
中使用它会导致'User' object has no attribute 'doctor'
错误。那么是否可以将其作为模板访问呢?在我的视图。
related_name=…
参数[Django-doc]是反向中关系的名称,所以要从User
访问Doctor
对象,因为你已经将其设置为user
,因此你可以使用request.user.user
访问Doctor
对象,但这是误导。
class Doctor(models.Model):
user = models.OneToOneField(
User,
on_delete=models.CASCADE,
primary_key=True,
related_name='doctor'
)
# other fields …
注意:通常最好使用
settings.AUTH_USER_MODEL
[Django-doc]引用用户模型,而不是使用User
直接建模[Django-doc]。要了解更多信息,您可以查看参考User
模型部分的文档。