Django Как получить имя пользователя создателя вместо id, используя два для
Я хочу получить имя пользователя создателя вместо id.
item.r.username
не работает.
item.r.bornplace
работают правильно.
Где я делаю ошибку?
Мой model.py:
class Rec(models.Model):
creator = models.ForeignKey(auth.get_user_model(), on_delete=models.CASCADE)
bornplace = models.CharField(default='default')
Мой views.py
def lists(request):
list = Rec.objects.all()
lists = []
for r in list:
lists.append({'r':r})
context = {'lists': lists}
return render(request, 'lists.html', context)
Мои списки.html
{% for item in lists %}
{{ item.r.username }}
{{ item.r.author_id }}
{{ item.r.bornplace }}
{% endfor %}
вы должны сделать это таким образом:
{{ item.r.creator.username }}
По вашему комментарию ответ заключался в использовании полей модели отображения Foreign Key, которые вы определили из creator
, как определено ниже:
class Rec(models.Model):
...
creator = models.ForeignKey(auth.get_user_model(), on_delete=models.CASCADE)
В данном случае я вижу, что вы используете Django's auth, а их модель по умолчанию хранит username
, поэтому доступ к вашему username
attr может быть получен из вашего creator
экземпляра. В целом, ваш вызов шаблона должен был выглядеть так:
{{ item.r.creator.username }}