如何在模板中显示模型对象中的内容?

How can I display content in a model object in template?

如何在模板中显示 UserType1 对象的 countrycity

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