如何在Django中通过user_id获取用户名?

时间:2016-02-14 11:36:01

标签: python django django-models

我有这个视图并在我的模板中循环:

def home(request):
    entries = Entries.objects.all()
    context = {"entries": entries}
    return render(request, "index.html", context)

的index.html:

{% for entry in entries %}
{{ entry.user_id }}
{% endfor %}

我可以输出user_id个条目。但是如何获得username的{​​{1}}?我不知道如何在我看来获取这些信息。

1 个答案:

答案 0 :(得分:1)

如果ForeignKey模型中有UserEntries

,那就更好了
from django.contrib.auth.models import User
class Entries(models.Model):
    user = models.ForeignKey(User) # instead of user_id = IntegerField()

如果您不想要,可以在模型中添加属性

from django.contrib.auth.models import User
class Entries(models.Model):
    @property
    def user(self):
        return User.objects.get(pk=self.user_id)

此属性使用户可以entry.user作为属性,因此:

{% for entry in entries %}
    {{ entry.user.username }}
{% endfor %}