В случае с get MultipleObjectsReturned тоже желательно ловить
вообще-то да. И сделать это проще простого:
try:
SomeModel.objects.get(pk=pk).your_method()
except (SomeModel.DoesNotExists, SomeModel.MultipleObjectsReturned):
pass
или же
try:
SomeModel.objects.get(pk=pk).your_method()
except SomeModel.DoesNotExists:
pass
except SomeModel.MultipleObjectsReturned:
шотатам исчо
и как бэ это подразумевалось. Точно так же, как и подразумевалось, что в случае pk вероятность MultipleObjectsReturned стремится к нулю :)
filter(pk=pk)[0] я использовать не предлагал
а как же …
def first(self):
"""
Returns the first object of a query, returns None if no match is found.
"""
objects = list((self if self.ordered else self.order_by('pk'))[:1])
if objects:
return objects[0]
return None
а вообще…
Со старой закалкой
вот даже не знаю что и думать, термин «старая закалка» обычно ассоциируется с бородатыми такими пузатыми дядьками, поглядывающими на Бьорна Страуструпа с высоты своего опыта и приговаривающими «эх, молодёжь!». Неужели эта фраза была сказана в адрес откровенной школоты, коей менее двух недель назад 16 лет исполнилось, в адрес начинающего разработчика почти без опыта? Удивительно! :)
Updated 29 July 2015, 11:42 by N.E.M.