чтение имен столбцов из объединенного запроса в flask-sqlalchemy - PullRequest
0 голосов
/ 20 сентября 2018

поэтому у меня есть этот длинный запрос:

showings = db.execute("SELECT showings.cinema_id, showings.movie_id,\
                       cinemas.name, movies.name FROM showings JOIN\
                       cinemas ON showings.cinema_id=cinemas.id JOIN\
                       movies ON showings.movie_id=movies.id WHERE\
                       showings.id = :id", 
                      {"id": cinema_id}).fetchall()
return render_template("showings.html", showings2=showings2)

и затем в шаблоне:

{% for showing in showings2 %}
   <option value="{{ showing.id }}">
     {{ showing.name }} @{{ showing.name }}
   </option>
{% endfor %}

Проблема в том, что из-за одинаковых имен столбцов в двух разных таблицах,текущий шаблон возвращает одно и то же содержимое дважды, то есть значение cinema.name. Есть ли возможность обойти его?

1 Ответ

0 голосов
/ 20 сентября 2018

Переименуйте столбцы, используя псевдонимы:

showings = db.execute(
    """SELECT showings.cinema_id
            , showings.movie_id
            , cinemas.name AS cinema_name
            , movies.name AS movie_name
       FROM   showings 
       JOIN   cinemas ON showings.cinema_id=cinemas.id
       JOIN   movies ON showings.movie_id=movies.id
       WHERE  showings.id = :id""", {"id": cinema_id}).fetchall()

и используйте указанные псевдонимы в шаблоне:

<option value="{{ showing.id }}">
    {{ showing.cinema_name }} @ {{ showing.movie_name }}
</option>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...