Django: How to use get() method in model
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')
Traceback (most recent call last):
File "", line 1, in
File "/usr/lib/python2.7/site-packages/django/db/models/manager.py", line 131, in get
return self.get_query_set().get(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/django/db/models/query.py", line 368, in get
% (self.model._meta.object_name, num, kwargs))
MultipleObjectsReturned: get() returned more than one WorkDailyRecord -- it returned 12! Lookup parameters were {'ongoing_or_end': 'ing'}
I want to get only ‘ing’ data…
What should I do?
To get a list of objects, use the
filtermethod.getis supposed to return a single object or raise an exception: