Django: django.db.model.Manager.get() : MultipleObjectsReturned

複数結果が帰るqueryだとget()は例外です。

hdknr@deb09:~/djangocamp/trunk/mysite$ python manage.py shell
Python 2.5.2 (r252:60911, Jan  4 2009, 17:40:26)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from polls.models import *
>>> r=Poll.objects.filter(question__contains=’What’)
>>> r

[<Poll: What’s up?>, <Poll: What is your favorit pet?>, <Poll: What is your favorit food?>]
                    296 Query       SET NAMES utf8
                    296 Query       set autocommit=0
                    296 Query       SELECT `polls_poll`.`id`, `polls_poll`.`question`, `polls_poll`.`pub_date` FROM `polls_poll` WHERE `polls_poll`.`question` LIKE BINARY ‘%What%’  LIMIT 21

>>> r=Poll.objects.get(question__contains=’What’)
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/var/lib/python-support/python2.5/django/db/models/manager.py", line 93, in get
    return self.get_query_set().get(*args, **kwargs)
  File "/var/lib/python-support/python2.5/django/db/models/query.py", line 311, in get
    % (self.model._meta.object_name, num, kwargs))
MultipleObjectsReturned: get() returned more than one Poll — it returned 3! Lookup parameters were {’question__contains’: ‘What’}

>>> r[1].delete()

090217 14:57:49     296 Query       SELECT `polls_choice`.`id`, `polls_choice`.`poll_id`, `polls_choice`.`choice`, `polls_choice`.`votes` FROM `polls_choice` WHERE `polls_choice`.`poll_id` = 2
                    296 Query       DELETE FROM `polls_poll` WHERE `id` IN (2)
                    296 Query       commit

>>> r[2].delete()

090217 14:57:59     296 Query       SELECT `polls_choice`.`id`, `polls_choice`.`poll_id`, `polls_choice`.`choice`, `polls_choice`.`votes` FROM `polls_choice` WHERE `polls_choice`.`poll_id` = 3
                    296 Query       DELETE FROM `polls_poll` WHERE `id` IN (3)
                    296 Query       commit

>>> r=Poll.objects.get(question__contains=’What’)
>>> r
<Poll: What’s up?>

090217 14:59:12     296 Query       SELECT `polls_poll`.`id`, `polls_poll`.`question`, `polls_poll`.`pub_date` FROM `polls_poll` WHERE `polls_poll`.`question` LIKE BINARY ‘%What%’

カテゴリー: 未分類 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中