class Topic(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String) text = db.Column(db.String) author_id = db.Column(db.Integer, db.ForeignKey('users.id')) author = db.relationship("User") created = db.Column(db.DateTime, default=datetime.utcnow()) @classmethod def create(cls, title, text, author): topic = cls(title=title, text=text, author=author) db.add(topic) db.commit() return topic
class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String, unique=True) password_hash = db.Column(db.String) email_address = db.Column(db.String, unique=True) session_token = db.Column(db.String) created = db.Column(db.DateTime, default=datetime.utcnow)
class Comment(db.Model): id = db.Column(db.Integer, primary_key=True) text = db.Column(db.String) author_id = db.Column(db.Integer, db.ForeignKey('users.id')) author = db.relationship("User") topic_id = db.Column(db.Integer, db.ForeignKey('topics.id')) topic = db.relationship("Topic") created = db.Column(db.DateTime, default=datetime.utcnow()) @classmethod def create(cls, text, author, topic): comment = cls(text=text, author=author, topic=topic) db.add(comment) db.commit() if topic.author.email_address: send_email( "Ktos skomentowal twoj post {}! Sprawdz to szybko".format( topic.title), "Nowy komentarz", topic.author.email_address) return comment