with tutorial latest framework español desde con cero applications django django-models django-orm

tutorial - Consulta de la base de datos Django: ¿cómo obtener el objeto por identificación?



tutorial django (2)

Llegué aquí por el mismo problema, pero por una razón diferente:

Class.objects.get(id=1)

Este código generaba una excepción ImportError. Lo que me confundía era que el siguiente código funcionaba bien y devolvía un conjunto de resultados como se esperaba:

Class.objects.all()

Cola del traceback para el método get() :

File "django/db/models/loading.py", line 197, in get_models self._populate() File "django/db/models/loading.py", line 72, in _populate self.load_app(app_name, True) File "django/db/models/loading.py", line 94, in load_app app_module = import_module(app_name) File "django/utils/importlib.py", line 35, in import_module __import__(name) ImportError: No module named myapp

Al leer el código dentro de loading.py de Django, llegué a la conclusión de que mi settings.py tenía una mala ruta a mi aplicación que contiene mi definición de modelo de Class . Todo lo que tuve que hacer fue corregir el camino a la aplicación y el método get() ejecutado correctamente.

Aquí está mi settings.py con la ruta corregida:

INSTALLED_APPS = ( ''django.contrib.contenttypes'', ''django.contrib.sessions'', ''django.contrib.sites'', # ... ''mywebproject.myapp'',

)

Toda la confusión fue causada porque estoy usando el ORM de Django como independiente, por lo que el espacio de nombres tenía que reflejar eso.

Django crea automáticamente un campo de identificación como clave principal.

Ahora necesito obtener el objeto con esta identificación.

object = Class.objects.filter()

Cómo escribir este filtro?


Si quiere obtener un objeto, usar get() es más sencillo:

obj = Class.objects.get(pk=this_object_id)