The Samurai Principle
bruno.42.desthuilliers at websiteburo.invalid
Tue Sep 7 19:12:02 CEST 2010
Phlip a écrit :
> Back to the topic, I tend to do this:
> for record in Model.objects.filter(pk=42):
> return record
> return sentinel
WTF alert here...
> Having lots of short methods helps, because return provides both
> control-flow and a result value. But it abuses 'for' to mean 'if'. I
> feel _reeeeally_ guilty about that!
> But I miss this, from (cough) RoR:
> record = Model.find(42) || sentinel
> Django should provide this:
> record = Model.objects.get(pk=42, _if_does_not_exist=sentinel)
queryset.get can be used with multiple conditions - it's not necessarily
restricted to pk lookups. However you name your "_if_does_not_exist"
kwarg, it will be difficult to garantee that there will never be no
nameclash with any possible valid model lookup argument...
But if you feel like you found the correct name, you can of course
monkeypatch queryset !-)
More information about the Python-list