from banjo.models import ( Model, StringField, ForeignKey, BooleanField, ) class User(Model): name = StringField(unique=True) public_key = StringField() def to_dict(self): return { 'name': self.name, 'public_key': self.public_key, } class Message(Model): sender = ForeignKey(User, related_name="messages_sent") recipient = ForeignKey(User, related_name="messages_received") ciphertext = StringField() read = BooleanField() def to_dict(self): return { 'sender': self.sender.name, 'recipient': self.recipient.name, 'ciphertext': self.ciphertext, }