[英]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_id
的username
? 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
模型中具有User
的ForeignKey
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.