Отображение уникальных значений в шаблоне колбы - PullRequest
0 голосов
/ 23 мая 2019

У меня есть запрос на мои views.py:

query = db.session.query(Basket, Fruits).filter(Fruits.basket_id == Basket.id)

В HTML-шаблоне я хочу отобразить для каждого идентификатора корзины (идентификатор корзины здесь уникален), чтоэто фрукты внутри каждой корзины, поэтому я использовал вложенный цикл for в своем шаблоне.

Я пробовал использовать html-шаблон:

{% for basket in query | unique %}
<p>{{ basket.Basket.id }}</p>
{% for fruits in query %}
<p>{% if basket.Basket.id == fruits.Basket.id %}
<p>{{ query.Fruits.fruit }}</p>
{% endif %}
{% endfor %}

Но уникальный идентификатор корзины не отображается.

Я думал о создании 2 запросов, чтобы я мог поставить .distinct и отобразить уникальный идентификатор корзины, а затем использовать другой запрос для отображения фруктов, но это не имело смысла для меня, потому что мне все еще нужновся информация во всем запросе.Начинающий в колбе.

1 Ответ

0 голосов
/ 23 мая 2019

Возможно, вам удастся достичь этого с помощью отношения один ко многим .

class Basket(db.Model):
    id = db.Column(db.Integer, primary_key = True)
    name = db.Column(db.String(100))
    fruits = db.relationship('Fruit', backref='basket')

class Fruit(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100))
    basket_id = db.Column(db.Integer, db.ForeignKey('basket.id'))


@app.route('/')
def baskets():
    baskets = db.session.query(Basket).all()
    return render_template('baskets.html', baskets=baskets )

Шаблон Jinja2:

{% for b in baskets %}
<ul>
  <p>
    {% b.name %}
  </p>
  {% for f in b.fruits %}
    <li>{{ f.name }}</li>
  {% endfor %}
</ul>
{% endfor %}
...