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

时间:2017-04-24 11:48:49

标签: 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 Guest(models.model):
    nationality=models.ForeignKey(Country,related_name='guest-nation')

在我的views.py中,我这样做:

    guest=Guest.objects.all().values('nationality')

在我的模板中:

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

现在,我希望国籍字段返回国家/地区的名称,但它返回国家/地区的ID(存储在nationality_id中)字段。从文档中,我了解它应该返回 str 方法中指定的值。

如果值为nationality__name,我可以访问该名称。它看起来比我想象的更丑,并且我确信它应该调用 str 方法。我错了吗?

1 个答案:

答案 0 :(得分:0)

试试这个:

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