Django database query: How to get object by id?

前端 未结 6 1507
遇见更好的自我
遇见更好的自我 2021-01-30 19:05

Django automatically creates an id field as primary key.

Now I need to get the object by this id.

object = Class.objects.filter() 

How

6条回答
  •  无人及你
    2021-01-30 19:54

    I got here for the same problem, but for a different reason:

    Class.objects.get(id=1)
    

    This code was raising an ImportError exception. What was confusing me was that the code below executed fine and returned a result set as expected:

    Class.objects.all()
    

    Tail of the traceback for the get() method:

    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
    

    Reading the code inside Django's loading.py, I came to the conclusion that my settings.py had a bad path to my app which contains my Class model definition. All I had to do was correct the path to the app and the get() method executed fine.

    Here is my settings.py with the corrected path:

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

    )

    All the confusion was caused because I am using Django's ORM as a standalone, so the namespace had to reflect that.

提交回复
热议问题