Many fixes and docstrings

This commit is contained in:
Antonio de la Rosa 2022-04-01 01:04:29 +02:00
parent eb93be38ea
commit dd67eafd0d
5 changed files with 118 additions and 10 deletions

View file

@ -10,7 +10,7 @@ class IntegerField(PhangoField):
Args:
name (str): The name of new field
size (int): The size of the new field in database. By default 11.
required (bool): Boolean for define if
required (bool): Boolean for define if field is required or not
"""
@ -124,24 +124,41 @@ class FloatField(PhangoField):
return 'FLOAT NOT NULL DEFAULT "0"'
class DecimalField(FloatField):
"""PhangoField field for Decimals fields."""
def get_type_sql(self):
return 'DECIMAL(20, 2) NOT NULL DEFAULT "0"'
class DoubleField(FloatField):
"""PhangoField field for Double fields."""
def get_type_sql(self):
return 'DOUBLE NOT NULL DEFAULT "0"'
class CharField(PhangoField):
"""Simple alias for PhangoField for clarify that """
pass
class TextField(PhangoField):
"""Class used for text fields
Class used for text fields, use TEXT sql type for the this field.
"""
def __init__(self, name, required=False):
"""Init TextField class different to standard PhangoField
Args:
name (str): The name of new field
required (bool): Boolean for define if field is required or not
Attributes:
set_default (str): Set if the value es NOT NULL or not
"""
super().__init__(name, 11, required)
self.set_default='NOT NULL'
@ -155,12 +172,30 @@ class TextField(PhangoField):
return 'TEXT '+self.set_default
class HTMLField(TextField):
"""Class used for html fields
Class used for html fields, use TEXT sql type for the this field because is children of TextField.
"""
def __init__(self, name, required=False):
"""Init HTMLField class different to standard PhangoField
Args:
name (str): The name of new field
required (bool): Boolean for define if field is required or not
Attributes:
trusted_tags (list): A list with safe tags.
"""
super().__init__(name, required)
self.trusted_tags=[]
def check(self, value):
"""Check method for html values
This check method use beautifulsoap for clean and format html code
"""
soup=BeautifulSoup(value, features='html.parser')
@ -172,8 +207,17 @@ class HTMLField(TextField):
class ForeignKeyField(IntegerField):
"""Subclass of IntegerField for create Foreign keys
A subclass of IntegerField used for create foreign keys in related tables.
"""
def __init__(self, name, related_table, size=11, required=False, identifier_field='id', named_field="id", select_fields=[]):
"""
Args:
name (str): Name of field
"""
super(ForeignKeyField, self).__init__(name, size, required)