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

Reply via email to