J'ai besoin d'écrire deux classes comme ceci:Comment stocker et rechercher une liste dans SQLAlchemy?
class Item(Base, DBBase):
__tablename__ = 'items'
id = Column(Integer, primary_key = True)
name = Column(String)
description = Column(String)
price = Column(Float, default = 0)
on_sell = Column(Boolean, default = False)
img = Column(String)
attributes = relationship('ItemAttribute')
def __init__(self, name, description):
self.name = name
self.description = description
class ItemAttribute(Base, DBBase):
__tablename__ = 'itemattributes'
id = Column(Integer, primary_key = True)
name = Column(String, nullable = False)
value = Column(String, nullable = False)
item_id = Column(Integer, ForeignKey('items.id'))
item = relationship('Item')
def __init__(self, name, value):
self.name = name
self.value = value
Un élément peut posséder plusieurs attributs, et je dois: 1. insérer des méthodes sur la classe Item pour faire facilement CURD (insertion, suppression, mise à jour et requête) attributs pour cela. Je dois rechercher un attribut d'un élément et retourner sa valeur correspondante. 2. avoir la possibilité de rechercher des éléments par attributs. Par exemple, certains éléments ont les attributs de 'Feature' = 'True'. Je dois obtenir tous les articles qui ont cet attribut.
Merci pour votre aide. :-)
Merci pour votre aide! BTW: J'utilise rarement l'argument 'backref' parce qu'il a ajouté quelque chose à une classe sans rien suggérer dans le fichier de définition de classe qui fait que la classe a des attributs 'cachés'. –
Oui, ça m'agace aussi. J'ajoute généralement une variable fictive à ma classe avec un commentaire, comme: 'attributes = None #: espace réservé Dummy pour ItemAttribute backref' - il sera écrasé très bien, mais au moins il est là pour votre santé mentale et quel que soit l'inspecteur de code. –