Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Vous êtes un professionnel et vous avez besoin d'une formation ? Calcul scientifique
avec Python
Voir le programme détaillé
Module « sqlalchemy.ext.declarative »

Classe « ConcreteBase »

Informations générales

Héritage

builtins.object
    ConcreteBase

Définition

class ConcreteBase(builtins.object):

help(ConcreteBase)

A helper class for 'concrete' declarative mappings.

:class:`.ConcreteBase` will use the :func:`.polymorphic_union`
function automatically, against all tables mapped as a subclass
to this class.   The function is called via the
``__declare_last__()`` function, which is essentially
a hook for the :meth:`.after_configured` event.

:class:`.ConcreteBase` produces a mapped
table for the class itself.  Compare to :class:`.AbstractConcreteBase`,
which does not.

Example::

    from sqlalchemy.ext.declarative import ConcreteBase


    class Employee(ConcreteBase, Base):
        __tablename__ = "employee"
        employee_id = Column(Integer, primary_key=True)
        name = Column(String(50))
        __mapper_args__ = {
            "polymorphic_identity": "employee",
            "concrete": True,
        }


    class Manager(Employee):
        __tablename__ = "manager"
        employee_id = Column(Integer, primary_key=True)
        name = Column(String(50))
        manager_data = Column(String(40))
        __mapper_args__ = {
            "polymorphic_identity": "manager",
            "concrete": True,
        }

The name of the discriminator column used by :func:`.polymorphic_union`
defaults to the name ``type``.  To suit the use case of a mapping where an
actual column in a mapped table is already named ``type``, the
discriminator name can be configured by setting the
``_concrete_discriminator_name`` attribute::

    class Employee(ConcreteBase, Base):
        _concrete_discriminator_name = "_concrete_discriminator"

.. versionadded:: 1.3.19 Added the ``_concrete_discriminator_name``
   attribute to :class:`_declarative.ConcreteBase` so that the
   virtual discriminator column name can be customized.

.. versionchanged:: 1.4.2 The ``_concrete_discriminator_name`` attribute
   need only be placed on the basemost class to take correct effect for
   all subclasses.   An explicit error message is now raised if the
   mapped column names conflict with the discriminator name, whereas
   in the 1.3.x series there would be some warnings and then a non-useful
   query would be generated.

.. seealso::

    :class:`.AbstractConcreteBase`

    :ref:`concrete_inheritance`


Constructeur(s)

Signature du constructeur Description
__init__(self, /, *args, **kwargs) Initialize self. See help(type(self)) for accurate signature. [extrait de __init__.__doc__]

Liste des opérateurs

Opérateurs hérités de la classe object

__eq__, __ge__, __gt__, __le__, __lt__, __ne__

Liste des méthodes

Toutes les méthodes Méthodes d'instance Méthodes statiques Méthodes dépréciées
Signature de la méthodeDescription
__declare_first__()

Méthodes héritées de la classe object

__delattr__, __dir__, __format__, __getattribute__, __getstate__, __hash__, __init_subclass__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Vous êtes un professionnel et vous avez besoin d'une formation ? Coder avec une
Intelligence Artificielle
Voir le programme détaillé