Djangoは、IDフィールドを主キーとして自動的に作成します。
次に、このIDでオブジェクトを取得する必要があります。
object = Class.objects.filter()
このフィルターの書き方は?
オブジェクトを取得する場合は、get()
を使用する方が簡単です。
obj = Class.objects.get(pk=this_object_id)
私は同じ問題のためにここに来ましたが、別の理由で:
_Class.objects.get(id=1)
_
このコードはImportError例外を発生させていました。私を混乱させたのは、以下のコードが正常に実行され、期待どおりに結果セットが返されたことです:
_Class.objects.all()
_
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
_
Djangoの_loading.py
_内のコードを読んで、私の_settings.py
_にはClass
モデル定義を含むアプリへの悪いパスがあるという結論に達しました。アプリケーションへのパスを修正するだけで、get()
メソッドが正常に実行されました。
修正されたパスを持つ_settings.py
_は次のとおりです。
_INSTALLED_APPS = (
'Django.contrib.contenttypes',
'Django.contrib.sessions',
'Django.contrib.sites',
# ...
'mywebproject.myapp',
_
)
DjangoのORMをスタンドアロンとして使用しているため、すべての混乱が発生したため、名前空間にそれを反映させる必要がありました。