如何在模板中显示模型对象中的内容?
How can I display content in a model object in template?
如何在模板中显示 UserType1
对象的 country
和 city
?
class UserType1(models.Model):
user=models.OneToOneField(User,parent_link=True,primary_key=True)
country = models.CharField(max_length=50)
city = models.CharField(max_length=50)
def __str__(self):
return str(self.user)
def get_country(self):
return self.country
def get_city(self):
return self.city
我在 views.py
中有以下内容
def profile(request,userid):
basic_info = User.objects.get(pk=int(userid))
profile = UserType1.objects.filter(user=int(userid))
template_name = 'users/profile.html'
return render(request, template_name, {'userid':userid,'basic_info':basic_info, 'profile':profile})
以及模板中的以下内容
{% if profile %}
{{ profile.get_city }}
{{ profile.city }}
{% endif %}
都没用。谢谢!
您似乎正在访问查询集的属性,而不是模型实例,因为您没有在 UserType1
上调用 get
。
尝试:
profile = UserType1.objects.get(user=int(userid))
顺便说一句,一个小的改变会稍微简化你的代码:
user = models.OneToOneField(User, parent_link=True, primary_key=True, related_name='profile')
...
basic_info = User.objects.get(pk=int(userid))
profile = basic_info.profile
如何在模板中显示 UserType1
对象的 country
和 city
?
class UserType1(models.Model):
user=models.OneToOneField(User,parent_link=True,primary_key=True)
country = models.CharField(max_length=50)
city = models.CharField(max_length=50)
def __str__(self):
return str(self.user)
def get_country(self):
return self.country
def get_city(self):
return self.city
我在 views.py
中有以下内容def profile(request,userid):
basic_info = User.objects.get(pk=int(userid))
profile = UserType1.objects.filter(user=int(userid))
template_name = 'users/profile.html'
return render(request, template_name, {'userid':userid,'basic_info':basic_info, 'profile':profile})
以及模板中的以下内容
{% if profile %}
{{ profile.get_city }}
{{ profile.city }}
{% endif %}
都没用。谢谢!
您似乎正在访问查询集的属性,而不是模型实例,因为您没有在 UserType1
上调用 get
。
尝试:
profile = UserType1.objects.get(user=int(userid))
顺便说一句,一个小的改变会稍微简化你的代码:
user = models.OneToOneField(User, parent_link=True, primary_key=True, related_name='profile')
...
basic_info = User.objects.get(pk=int(userid))
profile = basic_info.profile