繁体   English   中英

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

[英]How do I get username by user_id in Django?

我的模板中有此视图并循环:

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 但是,如何获取该user_idusername 我不知道该如何获取这些信息。

最好是在您的Entries模型中具有UserForeignKey

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 %}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM