__从foreignkey字段调用时,此django应用程序中未调用str_uu方法

__从foreignkey字段调用时,此django应用程序中未调用str_uu方法,django,Django,我有这个模型: class Country(models.Model): name=models.CharField(max_length=100,unique=True) createdon=models.DateTimeField(auto_now_add=True) updatedon=models.DateTimeField(auto_now=True) def __str__(self): return self.name class

我有这个模型:

class Country(models.Model):
    name=models.CharField(max_length=100,unique=True)
    createdon=models.DateTimeField(auto_now_add=True)
    updatedon=models.DateTimeField(auto_now=True)

    def __str__(self):
       return self.name

class Guest(models.model):
    nationality=models.ForeignKey(Country,related_name='guest-nation')
在my views.py中,我执行以下操作:

    guest=Guest.objects.all().values('nationality')
在我的模板中:

     {% for info in guest %}
      {{ info.nationality }}
     {% endfor %}
现在,我希望National字段返回国家的名称,但它返回国家的id(存储在National_id)字段中。从文档中,我了解到它应该返回str方法中指定的值

如果我输入的值是国籍名称,我可以访问该名称。它看起来比我想象的更难看,我不知何故相信它应该称为str方法。我错了吗?

试试这个:

{% for info in guest %}
      {{ info.nationality.name }}
{% endfor %}

是的,它确实有效,但我仍然无法理解str方法的实际用途。