Diccionario Django%

Los métodos get y filter de Django son métodos comúnmente utilizados en los modelos de Django, por lo que es importante comprender la diferencia entre ellos.

Para ilustrar las diferencias entre ellos se definen dos modelos.

Alumnos de la clase (modelo.modelo):

Nombre = modelo. CharField(‘nombre‘, max_length=20, default=‘‘‘)

Edad=modelo. CharField(‘age‘, max_length=20, default = ‘‘‘)

Libro de texto (modelo. modelo):

Estudiante = modelo. Clave externa (estudiante)

Primero, hablemos del método get de Django:

1El método get de Django consiste en obtener los resultados coincidentes de la base de datos y devolver un objeto. Si el registro no existe, informará un error.

Por ejemplo, si tengo un registro en mi base de datos y el valor del nombre del registro es "python", usaría objetos estudiante = estudiante get(nombre = 'Pharaoh Python').

Devuelve un objeto de registro, que puedes ver a través del estudiante. __dict__. Devuelve un diccionario {'key':valeus}, donde clave es el nombre del campo y valores es el contenido del valor.

Si uso el método get para consultar registros que no existen en la base de datos, el programa informará un error.

Por ejemplo: estudiante = estudiante objetos. obtener (nombre = 'Lao Wang'), puedes ejecutarlo tú mismo.

2 Si utiliza get de Django para obtener datos de tablas relacionadas, obtendrá un error si hay más de dos datos en la tabla clave.

Por ejemplo, hay un registro en mi tabla de estudiantes:

DNI nombre edad

1 python 24

Escritorio de libros:

id ID de estudiante

1 1

2 1

Yo uso objetos

student = Student. get(name='python')

libro = libro objetos. get(estudiante)

También informará un error porque hay 2 registros en la tabla del libro con el estudiante. partido de mesa.

2. Hablemos nuevamente de los filtros de Django:

1El método de filtrado de Django obtiene resultados coincidentes de la base de datos y devuelve una lista de objetos. Si el registro no existe, devolverá [].

Por ejemplo, si tengo un registro en mi base de datos con el valor de nombre de registro python, usaría objetos estudiante = estudiante (nombre = 'Pharaoh Python').

El estudiante que devuelve es una lista de objetos. Puede ver que el resultado del estudiante [0] es el mismo que el resultado del estudiante devuelto por el método get anterior.