简体   繁体   English

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

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

I have this view and loop in my templates: 我的模板中有此视图并循环:

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

index.html: index.html:

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

I can get the user_id of the entries to output. 我可以获取要输出的条目的user_id But how do I get the username for that user_id ? 但是,如何获取该user_idusername I don't know how to get that information in my view. 我不知道该如何获取这些信息。

It's better if you have a ForeignKey to User in your Entries model 最好是在您的Entries模型中具有UserForeignKey

from django.contrib.auth.models import User
class Entries(models.Model):
    user = models.ForeignKey(User) # instead of user_id = IntegerField()

If you don't want that, you can add a property to your model 如果您不想这样做,可以向模型添加属性

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

This property makes the user available as entry.user as if it were an attribute, so: 此属性使用户可以作为entry.user来使用,就好像它是一个属性一样,因此:

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

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

相关问题 Django如何通过user_ID获取值 - Django how to get values by user_ID 如何将“user_id”传递给 CustomerSerializer? - How do I pass 'user_id' to CustomerSerializer? 如何在分开的位置获取user_id? - How can I get user_id in separated place? 如何将令牌有效负载的“user_id”放入 JSON POST 表单中?Django REST、simpleJWT、Vue3 - How do you get the "user_id" of the token payload into the JSON POST form?Django REST, simpleJWT, Vue3 有没有办法从存储的 user_id 中获取 user_id 的用户名,即使它们不在同一台服务器上? - Is there a way to get a username from a user_id from stored user_id's even if they aren't on the same server? 如何根据用户名而不是 Django 中的 (id, pk) 获取用户 object - How to get user object based on username and not the (id, pk) in Django 如何使用 Django 测试 self.client.get 来获取用户详细信息与 url 这样 /user/<int:user_id> ?</int:user_id> - How to use Django test self.client.get to get user detail with url like this /user/<int:user_id>? 如何将当前的user_id输入到Django数据库表中? - How can I input current user_id into django database table? 如何根据 django-template-language 中的 user_id 过滤组 - How can I filter groups based on user_id in django-template-language 从Django模板中单独模型上的user_id字段输出用户名 - Output username from user_id field on separate model in Django Template
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM