Djangoはidフィールドを主キーとして自動的に作成します。Djangoデータベースクエリ:IDでオブジェクトを取得するには?
今、このIDでオブジェクトを取得する必要があります。
object = Class.objects.filter()
このフィルタの書き方は?
Djangoはidフィールドを主キーとして自動的に作成します。Djangoデータベースクエリ:IDでオブジェクトを取得するには?
今、このIDでオブジェクトを取得する必要があります。
object = Class.objects.filter()
このフィルタの書き方は?
オブジェクトを取得したい場合は、get()
を使用するとより簡単です。
obj = Class.objects.get(pk=this_object_id)
私は同じ問題のためにここに来たが、別の理由:
Class.objects.get(id=1)
このコードを上げましたImportError例外です。私は、
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
内のコードを読む:トレースバックの
Class.objects.all()
テールget()
方法について:どのような私を混乱させたことは、コードは以下の罰金を実行し、期待通りの結果が設定され返されていることでした私のsettings.py
が私のClass
モデル定義を含む私のアプリへの悪いパスを持っていたという結論に達しました。私がしなければならなかったのは、アプリへの道筋を修正し、get()
メソッドを正常に実行したことだけでした。ここで
が修正パスと私のsettings.py
次のとおりです。)
INSTALLED_APPS = (
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
# ...
'mywebproject.myapp',
私は、スタンドアロンとしてDjangoのORMを使用していますので、すべての混乱が発生したので、名前空間はそれを反映しなければなりませんでした。
FYI、 'pk'は、任意のモデルの主キーを参照するのに適した方法です。 'id'フィールドは、モデル作成者がプライマリキーを特別に指定していない場合にのみ生成されます。作者が 'id'という名前のない主キーフィールドを指定した場合、' id'フィールドはありません。 –
また、FYIでは、オブジェクトのIDを返す組み込み関数の 'id'もあります。大部分の場合、 'id 'で物事を参照することは正しいことをするでしょう。 'Class.objects.get(id = this_object_id)'が動作します。しかし、それは私が推測すると考えるべきことです。 – Tom