Форум сайта python.su
Не получается связать status_id с serials_id.
Выдает “ SELECT status.id AS status_id, status.status_name AS status_status_name, status.serial_id AS status_serial_id FROM status WHERE :param_1 = status.serial_id”
class Serials(db.Model): id = db.Column(db.Integer, primary_key=True) serial = db.Column(db.String(30)) packet_id = db.Column(db.String(39)) date_cr = db.Column(db.String(22)) # Packet create date_pk= db.Column(db.String(22)) # Packet packing date_sd = db.Column(db.String(22)) # Packet start dru date_fd= db.Column(db.String(22)) # Packet finish dry status_id = db.relationship("Status", backref ="sernick", lazy = 'dynamic') dry_id = db.Column(db.String(30)) def __init__(self, serial): self.serial = serial def __repr__(self): return "<Serials(serial='%s'>" % (self.serial) class Status(db.Model): id = db.Column(db.Integer, primary_key=True) status_name = db.Column(db.String(20)) serial_id = db.Column(db.Integer, db.ForeignKey('serials.id')) def __init__(self, status_name): self.status_name = status_name def __repr__(self):
Прикреплённый файлы:
Screenshot_2.png (18,6 KБ)
Офлайн
boligolov
'dynamic' возвращает обьект Query, а к нему уже применяется all, filter, и тд., или можно использовать получение елемента списка по индексу , что тоже выполнит запрос
Офлайн
А не подскажите, во вьюхе я получаю поле из Serials - id, ser и starus_id, которое соответствует полю id в Status. Могу ли через query получить id, serials и Status.name соответствующую starus_id?
models.py
class Serials(db.Model): id = db.Column(db.Integer, primary_key=True) ser = db.Column(db.String(30)) starus_id = db.Column(db.Integer, db.ForeignKey("status.id")) def __repr__(self): return '<Serials %r>' % (self.ser) class Status(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(10)) ser_id = db.relationship("Serials", backref = 'status') def __repr__(self): return '<Status %r>' % (self.name)
class ItemTable(Table): id = Col('Id') ser = Col('Серийный номер') starus_id = Col ("Статус пакета") items = Serials.query.all() table1 = ItemTable(items) z = items[1].status.name table1 = @app.route("/table2") def table2(): return render_template ("table.html", table = table1)
Офлайн
Что это вообще такое?
class ItemTable(Table): id = Col('Id') ser = Col('Серийный номер') starus_id = Col ("Статус пакета")
Офлайн
4kpt_IIIЭто от библиотеки flask-table.
Что это вообще такое?
from flask_table import Table, Col class ItemTable(Table): id = Col('Id') ser = Col('Серийный номер') starus_id = Col ("Статус пакета") items = Serials.query.all() table1 = ItemTable(items)
Офлайн
boligolov
а почему это за пределами вьюхи?
items = Serials.query.all() table1 = ItemTable(items)
Офлайн
sanderне весь views.py отправил, так он там находится.
boligolovа почему это за пределами вьюхи?
Офлайн
boligolov
за пределами
@app.route("/table2") def table2(): .....
Офлайн
boligolovЭто уже даже не смешно.
Это от библиотеки flask-table.
Офлайн
Подучил матчасть и пошло как надо:
view.py
@app.route("/") @app.route('/index') def index(): l = ["1", "2", "3"] q = Serials.query.order_by(Serials.id).all() return render_template('temp1.html', title = "Учет пиломатериалов", menu = l, serials =q)
{% extends "base.html" %} {% block title %}{{title}}{% endblock title %} {% block head %} {{ super() }} <style type="text/css"> .important { color: #336699; } </style> {% endblock %} {% block content %} <h1>Меню</h1> <p class="important">Учет пиломатериалов</p> <ul> {% for i in menu %} <li>{{i}}</li> {% endfor %} </ul> <div id="main" class="container"> <h2>Все позиции</h2> <table class="table table-hover"> <tr> <th># <th>Серийный номер <th>Статус <th>Пакет <th>Доска <th>Бревно <th>Номер сушилки <th>Место в камере <th>Дата {%- for item in serials %} <tr class={{ "success" if item.done }}> <td><a href="/packets/{{ item.id }}">{{ item.id }}</a> <td>{{ item.status.name }} </td> <td>{{ item.packet.wh }} x {{ item.packet.ht}} </td> <td>{{ item.packet.boards.ht}} x {{ item.packet.boards.wh}}</td> <td><center>{{ item.packet.boards.timber.diam}} </center></td> <td>{{ item.dry.num }}</td> <td><center>{{ item.dry.place.place}}<center></td> {%- endfor %} </table> </div> {% endblock %}
Прикреплённый файлы:
Screenshot_1.png (19,7 KБ)
Офлайн