[Flask] help writing a query
Arunmozhi
arun.4020 at gmail.com
Sat Jun 27 11:54:30 EDT 2020
Something like:
Memo.query.filter(Memo.author_pk ==
<author_pk>).filter(Memo.MemoRecipient.has(MemoReciepient.pk ==
<reciepient_id)).order_by(Memo.modified_at)
On Fri, Jun 26, 2020 at 2:18 AM Corey Boyle <coreybrett at gmail.com> wrote:
> I have something like the following...
>
> class TimestampMixin(object):
> created_at = db.Column(db.DateTime, default=datetime.datetime.utcnow)
> modified_at = db.Column(db.DateTime, default=datetime.datetime.utcnow,
> onupdate=datetime.datetime.utcnow)
>
> class Memo(db.Model, TimestampMixin):
>
> __tablename__ = "memos"
> pk = db.Column(db.Integer, primary_key=True)
> note = db.Column(db.Text)
> date = db.Column(db.Date)
> purpose = db.Column(db.Text)
> product = db.Column(db.Text)
> location = db.Column(db.Text)
> private = db.Column(db.Boolean, default=False, nullable=True)
> in_person = db.Column(db.Boolean, default=False, nullable=True)
> rr = db.Column(db.Boolean, default=False, nullable=True)
>
> customer_pk = db.Column(db.Integer, db.ForeignKey("customers.pk"))
> author_pk = db.Column(db.Integer, db.ForeignKey("users.pk"))
> contact_pk = db.Column(db.Integer, db.ForeignKey("contacts.pk"))
> r_by_pk = db.Column(db.Integer, db.ForeignKey("users.pk"))
>
> recipients = db.relationship("MemoRecipient", backref="memo",
> cascade="save-update, merge, delete",)
> comments = db.relationship("MemoComment", backref="memo",
> cascade="save-update, merge, delete",)
> reminders = db.relationship("MemoReminder", backref="memo",
> cascade="save-update, merge, delete",)
>
> class MemoRecipient(db.Model):
> __tablename__ = "memorecipients"
> pk = db.Column(db.Integer, primary_key=True)
>
> memo_pk = db.Column(db.Integer, db.ForeignKey("memos.pk"))
> user_pk = db.Column(db.Integer, db.ForeignKey("users.pk"))
>
> Whenever a Memo is created, it has an author and optionally gets tagged
> with other users using the MemoRecipient table.
>
> I am trying to figure out how to write a query that will give me all the
> Memos that were authored by (Memo.author_pk) or sent to
> (MemoRecipient.user_pk) a specific user. I also need to order the results
> by Memo.modified_at and paginate the results. I'm thinking I need some type
> of JOIN, I'm just not sure which.
>
> Any advice?
>
> _______________________________________________
> Flask mailing list
> Flask at python.org
> https://mail.python.org/mailman/listinfo/flask
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/flask/attachments/20200627/d4421f43/attachment.html>
More information about the Flask
mailing list