Here's an easy lesson we can learn from Rails: pluralisation sucks.
Person -> People, Family -> Families etc is all very pretty but at
the end of the day you're constantly left asking yourself if the bug
you are facing would be fixed by adding or removing an S.
Under consideration at the moment is replacing magic modules in the
ORM with class methods.
entries.get_list()
becomes
Entry.get_list()
This would instantly eliminate the main usage of pluralisation in
Django.
The other one is database table names. I would argue that since these
are almost /never/ directly exposed in Django itself, they should be
left as singular as well (just the name of the model class casted to
lower case. If we wanted to be really radical we could leave them
Titlecased!). This is bound to upset a lot of DB style purists
(myself included) but the solution is there already: use the
db_table model parameter to override it.
Pluralisation is a nice idea in theory, but in practise it causes
more problems (in terms of confusion over whether something is
singular or plural) than it solves.
Cheers,
Simon