У меня две модели: компания и контакт. Компания может иметь много контактов.Соедините два стола и покажите все комбинации
class Company(db.Model):
__tablename__ = 'company'
id = db.Column(db.Integer, primary_key=True)
companyname = db.Column(db.String())
contacts = db.relationship('Contact', backref='contact', lazy='dynamic')
def __init__(self, companyname):
self.companyname = companyname
def __repr__(self):
return '<id {}>'.format(self.id)
def company_contacts(self):
return Contact.query.join(id = Contact.company_id)
class Contact(db.Model):
__tablename__ = 'contact'
id = db.Column(db.Integer, primary_key=True)
firstname = db.Column(db.String())
lastname = db.Column(db.String())
emailaddress = db.Column(db.String())
company_id = db.Column(db.Integer, db.ForeignKey('company.id'))
def __init__(self, firstname, lastname, emailaddress, company_id):
self.firstname = firstname
self.lastname = lastname
self.emailaddress = emailaddress
self.company_id = company_id
def __repr__(self):
return '<id {}>'.format(self.id)
Я хочу, чтобы показать список с компаниями и их контакты в шаблоне:
Company Name
First Name Last Name
Company Name
First Name Last Name
First Name Last Name
Я планировал сделать это с помощью присоединиться к заявлению:
group = Company.query.join(contacts).all()
и имеют для цикла в моем шаблоне итерации, хотя это. Это не сработало. Как я могу отображать компании с их контактами, сгруппированными под ними?
Thanks David! Я сделал изменения, которые вы описали в модели (удаленный лентяй и обновил backref), и отредактировал запрос в представлении и цикл for в шаблоне. Теперь я получаю компании, но еще не контакты ниже. Например. элемент ul остается пустым. Я думаю, что это имеет какое-то отношение к идентификатору компании, который не связан с контактом, но пока не может понять, почему. –
Вычислено, это было для петли: {% для контакта в компании.контакты%} Обратите внимание на контакты за контактами. –
@JelmerdeJong фиксированный, спасибо, что указал. – davidism