Django:在模板中访问一对一字段

10 浏览
0 Comments

Django:在模板中访问一对一字段

我有一个包含在名为Info的类上的OneToOneField的模型UserProfile:

class UserProfile(models.Model):

user = models.OneToOneField(User, primary_key=True)

info = models.OneToOneField(Info, null = True, blank= True)

在我的模板中,我可以通过{{user.get_profile}}访问用户配置文件,但是如何访问Info呢?

我尝试过{{user.get_profile.info.photo.url}},但没有成功。

0
0 Comments

问题的原因是在模板中无法直接访问一对一字段的属性。get_profile()是一个方法,在模板中访问时会执行,但访问profile的其他属性时不会执行。解决方法是从视图中将profile对象传递到模板中,如果需要在多个视图中使用,可以将其作为TemplateContextProcessor。另一种方式是通过扩展User模型,添加一个与get_profile()相同功能的profile属性。

0