0

Django: モデルで get() メソッドを使用する方法

models.py

class WorkDailyRecord(models.Model):
    user = models.ForeignKey(User)
    date = models.DateTimeField(auto_now_add=True)
    contents = models.TextField()
    check_user = models.ManyToManyField(
                User,
                related_name='checked_user_record_set',
            )
    target_user = models.ManyToManyField(
                User,
                related_name='target_user_record_set',
            )

    ONGOING_OR_END =(
                ('ing', 'ing'),
                ('end', 'end'),
            )


    ongoing_or_end = models.CharField(
                max_length=3,
                choices=ONGOING_OR_END,
                default='ing',
            )
>>>WorkDailyRecord.objects.get(ongoing_or_end='ing')
トレースバック (最新の呼び出しが最後):
  ファイル ""、1 行目、
  ファイル「/usr/lib/python2.7/site-packages/django/db/models/manager.py」、131行目、get
    return self.get_query_set().get(*args, **kwargs)
  ファイル「/usr/lib/python2.7/site-packages/django/db/models/query.py」、368行目、get
    % (self.model._meta.object_name, num, kwargs))
MultipleObjectsReturned: get() が複数の WorkDailyRecord を返しました -- 12 が返されました! ルックアップ パラメータは {'ongoing_or_end': 'ing'} でした

「ing」データだけを取得したい...

私は何をすべきか?

4

3 に答える 3

2

オブジェクトのリストを取得するには、filterメソッドを使用します。get単一のオブジェクトを返すか、例外を発生させることになっています:

WorkDailyRecord.objects.filter(ongoing_or_end='ing')
于 2013-01-30T20:23:00.643 に答える
0

get() メソッド
のクエリで複数のオブジェクトが返されるか、結果が返されない場合、両方とも例外が発生します。

代わりに filter() を使用してください

于 2017-12-27T08:15:40.167 に答える