vistas usuarios proyecto modelos fields example crear administracion python django django-models

python - usuarios - models django example



Django: ¿Cuál es el papel de ModelState? (1)

Lo siento por no ser esto como una pregunta de programación, pero esto me llamó la atención cuando intentaba inspeccionar los objetos de mi clase.

encontré esto

{''user_id'': 1, ''_state'': <django.db.models.base.ModelState object at 0x10ac2a750>, ''id'': 2, ''playlist_id'': 8}

¿Cuál es el rol de _state y qué hace ModelState ?


Desde el código fuente de Django, _state es una variable de instancia definida en cada instancia del Modelo que es una instancia de ModelState que se define como:

class ModelState(object): """ A class for storing instance state """ def __init__(self, db=None): self.db = db # If true, uniqueness validation checks will consider this a new, as-yet-unsaved object. # Necessary for correct validation of new instances of objects with explicit (non-auto) PKs. # This impacts validation only; it has no effect on the actual save. self.adding = True

Básicamente, esta variable de instancia se usa para saber si la instancia del Model ya se escribió en una base de datos (sabiendo que Django admite varios backends de base de datos) y para mantener la db utilizada, la adding este atributo de variable de instancia se establece en falso después de guardar la instancia del modelo . y se usa principalmente (como el comentario en el código anterior) para validar si las claves primarias son únicas .