Files
kontor/flask/kontor/comics/models.py
T
2025-01-14 15:35:53 +01:00

52 lines
1.4 KiB
Python

"""This modules declares the model for Comic related information."""
from flask import current_app
from pymongo.write_concern import WriteConcern
from pymodm import MongoModel, fields
class Publisher(MongoModel):
"""Class Publisher represents a publisher of a comic."""
name = fields.CharField()
def __str__(self):
return "Publisher({})".format(self.name)
@property
def comics(self):
"""
Return list of comics which has reference to this publisher
:return:
"""
comics = Comic.objects.raw({'publisher': self.pk})
current_app.logger.debug(comics)
return comics
class Meta:
"""Sets the connection and connections details."""
connection_alias = 'kontor'
write_concern = WriteConcern(j=True)
class Artist(MongoModel):
"""Class Artist represents a comic artist."""
name = fields.CharField()
class Meta:
"""Sets the connection and connections details."""
connection_alias = 'kontor'
write_concern = WriteConcern(j=True)
class Comic(MongoModel):
"""Class Comic represents a comic."""
title = fields.CharField()
publisher = fields.ReferenceField(Publisher)
current_order = fields.BooleanField(default=False)
completed = fields.BooleanField(default=False)
class Meta:
"""Sets the connection and connections details."""
connection_alias = 'kontor'
write_concern = WriteConcern(j=True)