Source code for dbeasyorm.fields.foreign_key

from .abstract import BaseField


[docs] class ForeignKey(BaseField): def __init__(self, related_model, field_name=None, null=True, primary=False, unique=False, on_delete="CASCADE"): super().__init__(int, field_name, null, primary, unique) self.related_model = related_model self.on_delete = on_delete
[docs] def get_sql_line(self, db_backend_constrain_gen=None) -> str: return db_backend_constrain_gen(self.field_name, self.related_model.__name__.upper(), self.on_delete)
[docs] def get_basic_sql_line(self, sql_type="INTEGER") -> str: return f'{self.field_name} {sql_type}'
[docs] def validate(self, value): super().validate(value) if not isinstance(value, int): raise TypeError( f"Invalid value for ForeignKey field '{self.field_name}': expected int, got {type(value).__name__}." )