QueryManager
Is true to say that us using QueryManager in this lesson is performing the same purpose as the use of ModelManager in the last lesson but without having to declare a whole new class?
(apart from we don't need objects in Item.public())
As an aside, I assume this can only be used on the class and not the instance, in which case I believe there's a small typo in the second code sample under "Shell, take two".
I didn't totally follow the part in the lesson relating to why we're using a SlugField in addition to a CharField in the Item model. I'm tempted to think the implication is that we're as well to use only a CharField with db_index=True, but I feel I've misundestood!
Answers
The model-utils QueryManager is very similar to our previous use of a custom ModelManager, yes, except it does a decent amount of the work for us. And, yes, it saves us from creating a new class ourselves.
A SlugField is just a CharField with db_index=True. So you could use either, but, again, using the custom field saves us time.