Ключ Django, словарь значений, возвращающий данные под тем же ключом - PullRequest
0 голосов
/ 08 апреля 2020

Я извлекаю данные из моей базы данных Firebase и пытаюсь передать их в мой шаблон в Django. Я легко могу передать только значения в шаблон, но я пытаюсь также передать идентификатор, используя словарь ключ-значение, но по какой-то причине я не могу заставить его работать так, как я хочу. Он возвращает все значения под одним и тем же ключом. Я бы хотел, чтобы каждый ключ совпадал с соответствующим значением.

Структура базы данных:

"posts" : {
"-LqytRym_35j-6il-nHQ" : {
  "title" : "Purple",
  "uid" : "LTAeaDscQyexbud3ijIMYpDCucO2"
},

Views.py :

posts = database.child("posts").child(favKey).get()

posts_dict.append(posts.val())

at1 = {posts.query_key:[posts.val()]}

print(at1)

return render(request, 'users/favourites.html', {'posts': at1})

Шаблон:

{% for key, value in posts.items %}
<article class="media content-section col-md-9 ml-sm-auto col-lg-10 px-4">
  <img class="rounded-circle article-img" src="{{ post.author.profile.image.url }}">
  <div class="media-body">
    <div class="article-metadata">
      <a class="mr-2" href="#">{{ key }}</a>
      <small class="text-muted"></small>
    </div>
    <h2><a class="article-title" href="#">{{ value.title }}</a></h2>
    <p class="article-content">{{ post.uid }}</p>
  </div>
</article>
{% endfor %}

1 Ответ

1 голос
/ 08 апреля 2020

at1 = {posts.query_key:[posts.val()]} приведет к диктовке только с одной записью.

Запись имеет ключ posts.query_key (который не совпадает с posts.query_key() кстати, подумайте о то, что вы хотите) и значение [posts.val()] (которое представляет собой один объект: список).

Вместо этого вы можете использовать диктовку:

at1 = {post.query_key : post.val() for post in posts}

Это даст вам запись за каждый элемент в сообщениях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...