我有这种情况:
class Package(models.Model):
title = models.CharField(max_length=200)
createdBy = models.ForeignKey(User)
class UserProfile(models.Model):
website = models.URLField()
user = models.OneToOneField(User)
在我的模板中,我有object
个对象,我可以这样做:{{ object.createdBy }}
我可以在模板中执行{{ object.createdBy.userprofile.website }}
之类的操作吗?
答案 0 :(得分:0)
您应该将related_name添加到ForeignKey。
public static String rec(String s, int n, int m) {
if(n == 0 && m == s.length() - 1){
return s;
} else {
if (n > 0) {
s = s.substring(1);
n--;
m--;
}
if (m < s.length() - 1) {
s = s.substring(0, s.length() - 1);
}
return rec(s, n, m);
}
}
之后,您可以使用related_name参数中指定的名称检索用户的用户配置文件。
class Package(models.Model):
title = models.CharField(max_length=200)
createdBy = models.ForeignKey(User)
class UserProfile(models.Model):
website = models.URLField()
user = models.OneToOneField(User, related_name='userprofile')
在您的模板中,它将如下所示:
user = User.objects.select_related('userprofile').first()
profile = user.userprofile
如评论中所述,在您的情况下不需要related_name,因为它与相关的型号名称相同。来自docs:
如果没有为OneToOneField指定related_name参数,Django将使用当前模型的小写名称作为默认值。