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

Вернуться на верх