Данные из Views.Py не отображаются в шаблоне - PullRequest
0 голосов
/ 14 июня 2019

Я пытаюсь выяснить, почему некоторые данные из моего views.py не отображаются.Вот мой код

views.py

def user(request, user_id):
    profile = get_object_or_404(User, pk=user_id)
    rnk = Ranks.objects.all()
    context = {
        'profile' : profile,
        'rnk' : rnk,
    }
    return render(request, 'user/user.html', context)

Я пытаюсь показать, например, rank_name из моей модели, и я использую {{rnk.rank_name}} вШаблон HTML, но он не отображается.

С другой стороны, отображаются данные из profile, например {{profile.user_name}}.

Обратите внимание, что rnk и profile взяты из этогомодель:

class Ranks(models.Model):
    rank_name = models.CharField(max_length=300)
    description = models.TextField(blank=True)

    def __str__(self):
        return self.br_rank_name


class User(models.Model):
    b_rank = models.ForeignKey(Ranks, on_delete=models.DO_NOTHING)
    name = models.CharField(max_length=20)
    link = models.URLField(max_length=100)
    weekly = models.BooleanField(default=False)
    biweekly = models.BooleanField(default=False)

    def __str__(self):
       return self.name

Вот мой шаблон

{% extends 'base.html' %}
{% load static %}
{% block content %}

<h5>{{profile.user_name}}</h5><!--This shows up-->
<p>{{rnk.rank_name}}</p>
<p>{{profile.weekly}}</p>
<span class="icon-desc">{{rnk.rank_points}} points</span>

{% endblock %}

1 Ответ

1 голос
/ 14 июня 2019

Это потому, что rnk, переданный шаблону, является queryset и включает в себя несколько объектов. Поэтому вам нужно выполнить итерацию rnk, используя for, и попытаться показать детали каждого из них в вашем шаблоне.

{% extends 'base.html' %}
{% load static %}
{% block content %}
    <h5>{{ profile.user_name }}</h5>
    <p>{{ profile.weekly }}</p>
    {% for rank in rnk %}
        <p>{{ rank.rank_name }}</p>
        <span class="icon-desc">{{ rank.rank_points }} points</span>
        <img src="{{ rank.br_photo.url }}" height="150" alt="">
    {% endfor %}
{% endblock %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...