class KtOwnerAddressMaster(db.Model):
__tablename__ = 'kt_owner_address_master'
ADDRESS_ID = db.Column(Integer, primary_key=True)
STREET1 = db.Column(String(1024), nullable=False)
STREET2 = db.Column(String(1024))
ZIP = db.Column(String(15))
CITY_NAME = db.Column(String(200))
STATE = db.Column(String(200))
COUNTRY = db.Column(String(200))
ADDR_EXT_ID = db.Column(String(50), nullable=False, unique=True)
CREATED_ON = db.Column(DateTime, nullable=False)
UPDATED_ON = db.Column(DateTime)
def __init__(self, **kwargs):
super(KtOwnerAddressMaster, self).__init__(**kwargs)
return
class KtOwnerAddressMap(KtOwnerAddressMaster):
__tablename__ = 'kt_owner_address_map'
ADDRESS_ID =db.Column(ForeignKey(u'kt_owner_address_master.ADDRESS_ID'), primary_key=True)
CURRENT_ADDR = db.Column(SmallInteger, nullable=False, server_default=text("'0'"))
FRIENDLY_NAME = db.Column(String(100))
OWNER_ID = db.Column(ForeignKey(u'kt_owner_master.OWNER_ID'), nullable=False, index=True)
kt_owner_master = relationship(u'KtOwnerMaster')
def __init__(self, **kwargs):
super(KtOwnerAddressMap, self).__init__(**kwargs)
return
Et dans mon point de vue que je fais ce qui suit:session sqlalchemy appelant une autre table
ad_object=KtOwnerAddressMaster(STREET1=street1,
STREET2=street2,
ZIP=zipcode,
ADDR_EXT_ID=addr_ext_id,
CREATED_ON=datetime.now().strftime("%Y:%m:%d %H:%M:%S"),
UPDATED_ON=datetime.now().strftime("%Y:%m:%d %H:%M:%S"),
CITY_NAME =city_name,
STATE=state,
COUNTRY=country)
db.session.add(ad_object)
db.session.commit()
addr_obj=db.session.query(KtOwnerAddressMaster).filter_by(ADDR_EXT_ID=addr_ext_id).with_entities(KtOwnerAddressMaster.ADDRESS_ID).first()
address_id=int(addr_obj[0])
Maintenant, je suis en train d'ajouter une carte d'adresse à la table de carte d'adresse du propriétaire.
add_object=KtOwnerAddressMap(ADDRESS_ID=address_id,
CURRENT_ADDR="current_addr",
FRIENDLY_NAME="friendly_name",
OWNER_ID=owner_id)
db.session.add(add_object)
#The error appears on the below commit
db.session.commit()
Je peux voir l'adresse étant peuplée dans la base de données. Mais je ne suis pas capable d'insérer le propriétaire pour adresser le mappage dans la table. Il me donne l'erreur suivante: (_mysql_exceptions.OperationalError) (1048, "La colonne 'STREET1' ne peut pas être nulle") [SQL: u'INSERT EN kt_owner_address_master (ADDRESS_ID
, STREET1
, STREET2
, ZIP
, CITY_NAME
, STATE
, COUNTRY
, ADDR_EXT_ID
, CREATED_ON
, UPDATED_ON
) VALEURS (% s,% s,% s,% s,% s,% s,% s,% s,% s,% s) '] [paramètres: (51, Aucun, Aucun, Aucun, aucun, aucun, aucun, aucun, aucun, aucun)]
Votre aide sera grandement appréciée.